Skip to content

Commit 2093895

Browse files
committed
add php 8.4
1 parent 4e854cd commit 2093895

378 files changed

Lines changed: 9988 additions & 530 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.gitlab-ci.yml

Lines changed: 771 additions & 503 deletions
Large diffs are not rendered by default.

README.md

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -46,11 +46,11 @@ config files from the `provisioning` directory.
4646
We generate a multi stage Gitlab-CI configuration using PHP:
4747

4848
```
49-
docker run --rm -ti -v $PWD:/app -w /app/ci webdevops/php:8.1 composer install
50-
docker run --rm -ti -v $PWD:/app -w /app webdevops/php:8.1 ci/console gitlab:generate
49+
docker run --rm -ti -v $PWD:/app -w /app/ci webdevops/php:8.3-alpine composer install
50+
docker run --rm -ti -v $PWD:/app -w /app webdevops/php:8.3-alpine ci/console gitlab:generate
5151
```
5252

53-
Gitlab CI builds every image independant and runs serverspec and structure tests on every
53+
Gitlab CI builds every image independent and runs serverspec and structure tests on every
5454
image before pushing them to the registry.
5555

5656
## Documentation
@@ -68,26 +68,32 @@ The following images which are currently supported are based on `php:{VER}-fpm-b
6868
* `webdevops/php:8.1`
6969
* `webdevops/php:8.2`
7070
* `webdevops/php:8.3`
71+
* `webdevops/php:8.4`
7172
* `webdevops/php-dev:8.0`
7273
* `webdevops/php-dev:8.1`
7374
* `webdevops/php-dev:8.2`
7475
* `webdevops/php-dev:8.3`
76+
* `webdevops/php-dev:8.4`
7577
* `webdevops/php-apache:8.0`
7678
* `webdevops/php-apache:8.1`
7779
* `webdevops/php-apache:8.2`
7880
* `webdevops/php-apache:8.3`
81+
* `webdevops/php-apache:8.4`
7982
* `webdevops/php-apache-dev:8.0`
8083
* `webdevops/php-apache-dev:8.1`
8184
* `webdevops/php-apache-dev:8.2`
8285
* `webdevops/php-apache-dev:8.3`
86+
* `webdevops/php-apache-dev:8.4`
8387
* `webdevops/php-nginx:8.0`
8488
* `webdevops/php-nginx:8.1`
8589
* `webdevops/php-nginx:8.2`
8690
* `webdevops/php-nginx:8.3`
91+
* `webdevops/php-nginx:8.4`
8792
* `webdevops/php-nginx-dev:8.0`
8893
* `webdevops/php-nginx-dev:8.1`
8994
* `webdevops/php-nginx-dev:8.2`
9095
* `webdevops/php-nginx-dev:8.3`
96+
* `webdevops/php-nginx-dev:8.4`
9197

9298

9399
### Alpine PHP
@@ -98,23 +104,29 @@ The following images which are currently supported are based on `php:{VER}-fpm-a
98104
* `webdevops/php:8.1-alpine`
99105
* `webdevops/php:8.2-alpine`
100106
* `webdevops/php:8.3-alpine`
107+
* `webdevops/php:8.4-alpine`
101108
* `webdevops/php-dev:8.0-alpine`
102109
* `webdevops/php-dev:8.1-alpine`
103110
* `webdevops/php-dev:8.2-alpine`
104111
* `webdevops/php-dev:8.3-alpine`
112+
* `webdevops/php-dev:8.4-alpine`
105113
* `webdevops/php-apache:8.0-alpine`
106114
* `webdevops/php-apache:8.1-alpine`
107115
* `webdevops/php-apache:8.2-alpine`
108116
* `webdevops/php-apache:8.3-alpine`
117+
* `webdevops/php-apache:8.4-alpine`
109118
* `webdevops/php-apache-dev:8.0-alpine`
110119
* `webdevops/php-apache-dev:8.1-alpine`
111120
* `webdevops/php-apache-dev:8.2-alpine`
112121
* `webdevops/php-apache-dev:8.3-alpine`
122+
* `webdevops/php-apache-dev:8.4-alpine`
113123
* `webdevops/php-nginx:8.0-alpine`
114124
* `webdevops/php-nginx:8.1-alpine`
115125
* `webdevops/php-nginx:8.2-alpine`
116126
* `webdevops/php-nginx:8.3-alpine`
127+
* `webdevops/php-nginx:8.4-alpine`
117128
* `webdevops/php-nginx-dev:8.0-alpine`
118129
* `webdevops/php-nginx-dev:8.1-alpine`
119130
* `webdevops/php-nginx-dev:8.2-alpine`
120131
* `webdevops/php-nginx-dev:8.3-alpine`
132+
* `webdevops/php-nginx-dev:8.4-alpine`

build-local.sh

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
#!/usr/bin/env bash
2+
3+
set -exuo pipefail
4+
5+
ROOT_DIR=$(pwd)
6+
PHP_VERSION=8.4
7+
8+
#docker run --rm -ti -v $PWD:/app -w /app webdevops/dockerfile-build-env make provision
9+
10+
# if first parameter is present overwrite php version + make sanity check
11+
12+
if [ "$#" -gt 0 ]; then
13+
PHP_VERSION=$1
14+
if [ ! -d "$ROOT_DIR/docker/php/$PHP_VERSION" ]; then
15+
echo "PHP version $PHP_VERSION not found"
16+
exit 1
17+
fi
18+
fi
19+
20+
# alpine
21+
cd $ROOT_DIR/docker/php/$PHP_VERSION-alpine
22+
docker build -t webdevops/php:$PHP_VERSION-alpine .
23+
cd $ROOT_DIR/docker/php-dev/$PHP_VERSION-alpine
24+
docker build -t webdevops/php-dev:$PHP_VERSION-alpine .
25+
26+
cd $ROOT_DIR/docker/php-nginx/$PHP_VERSION-alpine
27+
docker build -t webdevops/php-nginx:$PHP_VERSION-alpine .
28+
cd $ROOT_DIR/docker/php-nginx-dev/$PHP_VERSION-alpine
29+
docker build -t webdevops/php-nginx-dev:$PHP_VERSION-alpine .
30+
31+
cd $ROOT_DIR/docker/php-apache/$PHP_VERSION-alpine
32+
docker build -t webdevops/php-apache:$PHP_VERSION-alpine .
33+
cd $ROOT_DIR/docker/php-apache-dev/$PHP_VERSION-alpine
34+
docker build -t webdevops/php-apache-dev:$PHP_VERSION-alpine .
35+
36+
# debian
37+
cd $ROOT_DIR/docker/php/$PHP_VERSION
38+
docker build -t webdevops/php:$PHP_VERSION .
39+
cd $ROOT_DIR/docker/php-dev/$PHP_VERSION
40+
docker build -t webdevops/php-dev:$PHP_VERSION .
41+
42+
cd $ROOT_DIR/docker/php-nginx/$PHP_VERSION
43+
docker build -t webdevops/php-nginx:$PHP_VERSION .
44+
cd $ROOT_DIR/docker/php-nginx-dev/$PHP_VERSION
45+
docker build -t webdevops/php-nginx-dev:$PHP_VERSION .
46+
47+
cd $ROOT_DIR/docker/php-apache/$PHP_VERSION
48+
docker build -t webdevops/php-apache:$PHP_VERSION .
49+
cd $ROOT_DIR/docker/php-apache-dev/$PHP_VERSION
50+
docker build -t webdevops/php-apache-dev:$PHP_VERSION .
51+
52+
docker images | grep webdevops | grep $PHP_VERSION

ci/src/Commands/GitlabCommand.php

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,12 @@ protected function execute(InputInterface $input, OutputInterface $output)
4646
$this->traverse($rootNode);
4747
}
4848
$gitlabCi['stages'] = array_map(function($level) {return 'level' . $level;}, range(1, $this->deepestLevel));
49+
50+
ksort($this->jobs); // system independent order of jobs (sorted by stage)
51+
uasort($this->jobs, function($a, $b) {
52+
return $a['stage'] <=> $b['stage'];
53+
});
54+
4955
$yaml = Yaml::dump(array_merge($gitlabCi, $this->jobs), 3, 2);
5056
file_put_contents(__DIR__ . '/../../../.gitlab-ci.yml', $yaml);
5157
return 0;

conf/console.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ dockerTest:
4343
OS_FAMILY: 'debian'
4444
OS_VERSION: '9'
4545
PHP_OFFICIAL: '1'
46-
'php[^:]*:8.(0|1|2|3)':
46+
'php[^:]*:8.(0|1|2|3|4)':
4747
OS_FAMILY: 'debian'
4848
OS_VERSION: '12'
4949
PHP_OFFICIAL: '1'
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
#+++++++++++++++++++++++++++++++++++++++
2+
# Dockerfile for webdevops/php-apache-dev:8.4-alpine
3+
# -- automatically generated --
4+
#+++++++++++++++++++++++++++++++++++++++
5+
6+
FROM webdevops/php-apache:8.4-alpine
7+
8+
ENV WEB_DOCUMENT_ROOT=/app \
9+
WEB_DOCUMENT_INDEX=index.php \
10+
WEB_ALIAS_DOMAIN=*.vm \
11+
WEB_PHP_TIMEOUT=600 \
12+
WEB_PHP_SOCKET=""
13+
ENV WEB_PHP_SOCKET=127.0.0.1:9000
14+
ENV WEB_NO_CACHE_PATTERN="\.(css|js|gif|png|jpg|svg|json|xml)$"
15+
16+
COPY conf/ /opt/docker/
17+
18+
RUN set -x \
19+
# Install development environment
20+
&& bash -c "$(curl -L https://installer.blackfire.io/installer.sh)" \
21+
&& blackfire php:install \
22+
&& apk-install \
23+
linux-headers \
24+
make \
25+
autoconf \
26+
g++ \
27+
&& pecl install xdebug \
28+
&& apk del -f --purge \
29+
autoconf \
30+
linux-headers \
31+
g++ \
32+
make \
33+
&& docker-php-ext-enable xdebug \
34+
# Enable php development services
35+
&& docker-service enable syslog \
36+
&& docker-service enable postfix \
37+
&& docker-service enable ssh \
38+
&& docker-run-bootstrap
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
{{ docker.from("php-apache", "8.4-alpine") }}
2+
3+
{{ environment.web() }}
4+
{{ environment.webPhp() }}
5+
{{ environment.webDevelopment() }}
6+
7+
{{ docker.copy('conf/', '/opt/docker/') }}
8+
9+
RUN set -x \
10+
{{ php.officialDevelopmentAlpine(version="8.4") }} \
11+
{{ provision.runBootstrap() }}
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
# placeholder
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
#!/usr/bin/env bash
2+
3+
# Init vars
4+
if [[ -z "$SERVICE_BLACKFIRE_AGENT_OPTS" ]]; then SERVICE_BLACKFIRE_AGENT_OPTS=""; fi
5+
6+
source /opt/docker/bin/config.sh
7+
8+
BLACKFIRE_ARGS=""
9+
10+
includeScriptDir "/opt/docker/bin/service.d/syslog-ng.d/"
11+
12+
# blackfire.server_id
13+
if [[ -n "${BLACKFIRE_SERVER_ID+x}" ]]; then
14+
BLACKFIRE_ARGS="$BLACKFIRE_ARGS --server-id=\"${BLACKFIRE_SERVER_ID}\""
15+
fi
16+
17+
# blackfire.server_token
18+
if [[ -n "${BLACKFIRE_SERVER_TOKEN+x}" ]]; then
19+
BLACKFIRE_ARGS="$BLACKFIRE_ARGS --server-token=\"${BLACKFIRE_SERVER_TOKEN}\""
20+
fi
21+
22+
# create directory for unix socket
23+
mkdir -p /var/run/blackfire
24+
25+
eval exec blackfire-agent $BLACKFIRE_ARGS $SERVICE_BLACKFIRE_AGENT_OPTS
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
# EnableSendfile: Control whether the sendfile kernel support is
2+
# used to deliver files (assuming that the OS supports it).
3+
# The default is on; turn this off if you serve from NFS-mounted
4+
# filesystems. Please see
5+
# http://httpd.apache.org/docs/2.2/mod/core.html#enablesendfile
6+
EnableSendfile off
7+
8+
LogLevel info

0 commit comments

Comments
 (0)