Skip to content

Commit ddd0ab1

Browse files
PHP: adding PHP 8.4
1 parent b9c9559 commit ddd0ab1

File tree

4 files changed

+97
-0
lines changed

4 files changed

+97
-0
lines changed

Diff for: .github/dependabot.yml

+11
Original file line numberDiff line numberDiff line change
@@ -225,6 +225,17 @@ updates:
225225
ignore:
226226
- dependency-name: "*"
227227
update-types: [ "version-update:semver-major", "version-update:semver-minor" ]
228+
- package-ecosystem: "docker"
229+
directory: "/php/8.4"
230+
schedule:
231+
interval: "weekly"
232+
labels:
233+
- "dependencies"
234+
- "docker"
235+
- "php"
236+
ignore:
237+
- dependency-name: "*"
238+
update-types: [ "version-update:semver-major", "version-update:semver-minor" ]
228239
# Platformsh
229240
- package-ecosystem: "docker"
230241
directory: "/platformsh"

Diff for: CHANGELOG.md

+1
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ Versions
77
* Azure: fixing download path for kubectl, and adding a check. We'll now use the latest version automatically
88
* Azure: installing zip to use tfenv
99
* Node : adding 22.x.x image. Updating tooling
10+
* PHP: adding PHP 8.4
1011

1112
2024-10-31
1213
----------

Diff for: php/8.4/Dockerfile

+76
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
FROM php:8.4.1-cli-alpine3.20 AS base
2+
LABEL maintainer="Rémi Marseille <[email protected]>"
3+
4+
ARG APCU_VERSION
5+
ARG COMPOSER_VERSION
6+
ARG MEMCACHED_VERSION
7+
ARG MODD_VERSION
8+
ARG PHP_CS_FIXER_VERSION
9+
ARG REDIS_VERSION
10+
ARG SSH2_VERSION
11+
ARG XDEBUG_VERSION
12+
ARG TARGETARCH
13+
14+
# iconv issue https://github.com/docker-library/php/issues/240
15+
FROM base AS base-amd64
16+
ARG MODD_ARCH="linux64"
17+
18+
FROM base AS base-arm64
19+
ARG MODD_ARCH="linuxARM"
20+
21+
FROM base-$TARGETARCH
22+
ENV COMPOSER_NO_INTERACTION=1 \
23+
COMPOSER_MEMORY_LIMIT=-1 \
24+
TERM=xterm \
25+
LD_PRELOAD="/usr/lib/preloadable_libiconv.so php" \
26+
PHP_CPPFLAGS="$PHP_CPPFLAGS -std=c++17"
27+
28+
RUN version=$(php -r "echo PHP_MAJOR_VERSION.PHP_MINOR_VERSION;") && \
29+
apk add --update --upgrade alpine-sdk apk-tools autoconf bash bzip2 cyrus-sasl-dev curl freetype-dev gettext git \
30+
icu-dev icu-data-full jq libgcrypt-dev libjpeg-turbo-dev \
31+
libmcrypt-dev libmemcached-dev libpng-dev libssh2-dev libxml2-dev libxslt-dev libzip-dev linux-headers make \
32+
mysql-client openssh-client patch postgresql-client postgresql-dev rsync tzdata && \
33+
# Install Modd"
34+
curl -sSL https://github.com/cortesi/modd/releases/download/v${MODD_VERSION}/modd-${MODD_VERSION}-${MODD_ARCH}.tgz | tar -xOvzf - modd-${MODD_VERSION}-${MODD_ARCH}/modd > /usr/bin/modd && \
35+
chmod 755 /usr/bin/modd && \
36+
echo "Starting PHP with $version" && \
37+
docker-php-ext-configure gd --with-freetype=/usr/include/ --with-jpeg=/usr/include/ && \
38+
CFLAGS_PREVIOUS=$CFLAGS && \
39+
export CFLAGS="$CFLAGS -D_GNU_SOURCE" && \
40+
docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) bcmath exif gd intl mysqli pcntl pdo_mysql pdo_pgsql pgsql soap sockets xsl zip && \
41+
export CFLAGS=$CFLAGS_PREVIOUS && \
42+
pecl install apcu-${APCU_VERSION} && \
43+
pecl install memcached-${MEMCACHED_VERSION} && \
44+
pecl install pcov && \
45+
docker-php-ext-enable pcov && \
46+
docker-php-ext-enable memcached && \
47+
docker-php-ext-configure pgsql -with-pgsql=/usr/local/pgsql && \
48+
echo -e "\
49+
date.timezone=${PHP_TIMEZONE:-UTC} \n\
50+
short_open_tag=Off \n\
51+
extension=apcu.so \n\
52+
zend_extension=opcache.so \n\
53+
" > /usr/local/etc/php/php.ini && \
54+
curl -sSL https://getcomposer.org/download/${COMPOSER_VERSION}/composer.phar -o /usr/local/bin/composer && chmod a+x /usr/local/bin/composer && \
55+
curl -sSL https://github.com/FriendsOfPHP/PHP-CS-Fixer/releases/download/v${PHP_CS_FIXER_VERSION}/php-cs-fixer.phar -o /usr/local/bin/php-cs-fixer && chmod a+x /usr/local/bin/php-cs-fixer && \
56+
curl -sSL https://github.com/phpredis/phpredis/archive/${REDIS_VERSION}.tar.gz | tar xz -C /tmp && \
57+
cd /tmp/phpredis-${REDIS_VERSION} && phpize && ./configure && make && make install && \
58+
echo "extension=redis.so" > /usr/local/etc/php/conf.d/redis.ini && \
59+
curl -sSL https://github.com/xdebug/xdebug/archive/${XDEBUG_VERSION}.tar.gz | tar xz -C /tmp && \
60+
cd /tmp/xdebug-${XDEBUG_VERSION} && phpize && ./configure --enable-xdebug && make && make install && \
61+
echo -e "zend_extension=xdebug.so \nxdebug.mode=coverage \n" > /usr/local/etc/php/conf.d/xdebug.ini && \
62+
mkdir -p /tmp/blackfire-probe && \
63+
curl -A "Docker" -o /tmp/blackfire-probe/blackfire-probe.tar.gz -D - -L -s https://blackfire.io/api/v1/releases/probe/php/alpine/${TARGETARCH}/$version && \
64+
tar zxpf /tmp/blackfire-probe/blackfire-probe.tar.gz -C /tmp/blackfire-probe && \
65+
mv /tmp/blackfire-probe/blackfire-*.so $(php -r "echo ini_get('extension_dir');")/blackfire.so && \
66+
printf "extension=blackfire.so\nblackfire.agent_socket=tcp://blackfire:8707\n" > $PHP_INI_DIR/conf.d/blackfire.ini && \
67+
mkdir -p /tmp/blackfire-client && \
68+
curl -A "Docker" -L https://blackfire.io/api/v1/releases/client/linux/${TARGETARCH} | tar zxp -C /tmp/blackfire-client && \
69+
mv /tmp/blackfire-client/blackfire /usr/bin/blackfire && \
70+
# Starting AWS
71+
apk add aws-cli && \
72+
# Adding an up to date mime-types definition file
73+
curl -sSL https://salsa.debian.org/debian/mime-support/raw/master/mime.types -o /etc/mime.types && \
74+
# Cleaning files
75+
apk del --purge alpine-sdk autoconf && \
76+
rm -rf /tmp/* /usr/share/doc /var/cache/apk/*

Diff for: php/config.yml

+9
Original file line numberDiff line numberDiff line change
@@ -35,3 +35,12 @@ versions:
3535
build_args:
3636
<<: *build_args
3737
test_config: *test_config
38+
"8.4":
39+
platforms: *platforms
40+
build_args:
41+
<<: *build_args
42+
APCU_VERSION: 5.1.24
43+
REDIS_VERSION: 6.1.0
44+
XDEBUG_VERSION: 3.4.0
45+
PHP_CS_FIXER_VERSION: 3.65.0
46+
test_config: *test_config

0 commit comments

Comments
 (0)