1- FROM openmage/php-base:bullseye -latest AS php
1+ FROM openmage/php-base:bookworm -latest AS php
22
33COPY FS /
44
5- ARG PHP_RUNTIME_REQUIREMENTS="jq curl libcurl3-gnutls ca-certificates libedit2 libgmp-dev libfreetype6 libltdl7 libmcrypt4 sqlite3 libpng16-16 libzip4 zip libfcgi-bin libtidy5deb1 libsodium23 libonig5 cron vim.tiny php-xdebug zip"
5+ ARG PHP_RUNTIME_REQUIREMENTS="jq curl libcurl3-gnutls ca-certificates libedit2 libgmp-dev libfreetype6 libltdl7 libmcrypt4 sqlite3 libpng16-16 libzip4 libfcgi-bin libtidy5deb1 libsodium23 libonig5 cron vim.tiny php-xdebug zip"
66ARG PHP_RUNTIME_REQUIREMENTS_EXTRA=""
7- ARG PHP_BUILD_REQUIREMENTS="build-essential dpkg-dev automake autoconf libtool file g++ gcc libc-dev make pkg-config re2c libxml2-dev libcurl4-gnutls-dev libtidy-dev libsqlite3-dev libssl-dev libxml2-dev zlib1g-dev libpng-dev libreadline6-dev libfreetype6-dev libmcrypt-dev libedit-dev libltdl-dev libxslt-dev libzip-dev libsodium-dev libonig-dev gnupg2 argon2 libargon2-0 libargon2-dev libzip-dev"
7+ ARG PHP_BUILD_REQUIREMENTS="build-essential curl dpkg-dev automake autoconf libtool file g++ gcc libc-dev make pkg-config re2c libxml2-dev libcurl4-gnutls-dev libtidy-dev libsqlite3-dev libssl-dev libxml2-dev zlib1g-dev libpng-dev liblzf -dev libreadline6-dev libfreetype6-dev libmcrypt-dev libedit-dev libltdl-dev libxslt-dev libzip-dev libsodium-dev libonig-dev gnupg2 argon2 libargon2-0 libargon2-dev libzip-dev"
88ARG PHP_BUILD_REQUIREMENTS_EXTRA=""
99ARG PHP_PECL_REQUIREMENTS="redis igbinary"
1010ARG PHP_CONFIGURE_ARGS="--enable-soap --enable-intl"
@@ -26,6 +26,7 @@ ENV PHP_CFLAGS="-fstack-protector-strong -fpic -fpie -O2" \
2626
2727# ## configure php
2828# hadolint ignore=DL4006,SC2039,DL3003
29+ # hadolint ignore=DL4006,SC2039,DL3003
2930RUN set -xe; \
3031 \
3132 chmod 755 /usr/local/bin/docker-entrypoint; \
@@ -82,18 +83,28 @@ RUN set -xe; \
8283 ${PHP_CONFIGURE_ARGS_FPM:-} \
8384 ; \
8485 make -j "$(nproc)" ; \
85- make install; \
86- mkdir -p /usr/src/php/ext/imagick; \
87- curl -fsSL https://github.com/Imagick/imagick/archive/refs/tags/${IMAGICK_VERSION}.tar.gz | tar xvz -C "/usr/src/php/ext/imagick" --strip 1; \
88- docker-php-ext-install imagick gd zip; \
86+ make install;
87+ RUN curl -L -o /tmp/imagick.tar.gz https://github.com/Imagick/imagick/archive/refs/tags/3.7.0.tar.gz \
88+ && tar --strip-components=1 -xf /tmp/imagick.tar.gz \
89+ && phpize \
90+ && ./configure \
91+ && make \
92+ && make install \
93+ && echo "extension=imagick.so" > /usr/local/etc/php/conf.d/ext-imagick.ini \
94+ && rm -rf /tmp/*
95+ RUN set -xe; \
96+ \
97+ docker-php-ext-install gd zip; \
8998 curl -fsSL https://github.com/FriendsOfPHP/pickle/releases/latest/download/pickle.phar -o pickle.phar; \
9099 chmod +x pickle.phar; \
91100 mv pickle.phar /usr/local/bin/pickle; \
92101 pickle install redis; \
93102 pickle install igbinary; \
94- pickle install xdebug@3.1.5; \
95- docker-php-ext-enable opcache redis igbinary imagick gd; \
96- docker-php-source delete; \
103+ pickle install xdebug; \
104+ docker-php-ext-enable imagick opcache redis imagick igbinary gd; \
105+ docker-php-source delete;
106+ RUN set -xe; \
107+ \
97108 # for some reason, upstream's php-fpm.conf.default has "include=NONE/etc/php-fpm.d/*.conf"
98109 sed 's!=NONE/!=!g' /usr/local/etc/php-fpm.conf.default | tee /usr/local/etc/php-fpm.conf > /dev/null; \
99110 cp /usr/local/etc/php-fpm.d/www.conf.default /usr/local/etc/php-fpm.d/www.conf; \
@@ -120,8 +131,7 @@ RUN set -xe; \
120131 echo 'pm.min_spare_servers = 2' ; \
121132 echo 'pm.max_spare_servers = 5' ; \
122133 echo 'pm.status_path = /status' ; \
123- } | tee /usr/local/etc/php-fpm.d/zz-docker.conf; \
124- /usr/local/bin/docker-layer-clean
134+ } | tee /usr/local/etc/php-fpm.d/zz-docker.conf;
125135
126136# # configure php extensions
127137# hadolint ignore=DL4006,SC2086,DL3003
@@ -133,24 +143,30 @@ RUN set -xe; \
133143 COMPOSER_DOWNLOAD_LATEST=$(curl -s https://api.github.com/repos/composer/composer/releases/latest | jq --raw-output '.assets[] | .browser_download_url' | head -n 1) ; \
134144 docker-package-download -o /usr/local/bin/composer ${COMPOSER_DOWNLOAD_LATEST}; \
135145 chmod +x /usr/local/bin/composer; \
136- composer selfupdate; \
146+ composer selfupdate;
147+ RUN set -xe; \
148+ \
137149 # ###############################################
138150 # # install Composer 1
139151 # ###############################################
140152 docker-package-download -o /usr/local/bin/composer1 https://getcomposer.org/composer-1.phar; \
141153 chmod +x /usr/local/bin/composer1; \
142- composer1 selfupdate; \
154+ composer1 selfupdate;
155+ RUN set -xe; \
156+ \
143157 # ###############################################
144158 # # install magerun
145159 # ###############################################
146160 curl -s -f -L -o /usr/local/bin/magerun https://files.magerun.net/n98-magerun.phar; \
147- chmod +x /usr/local/bin/magerun; \
161+ chmod +x /usr/local/bin/magerun;
162+ RUN set -xe; \
163+ \
148164 # ###############################################
149165 # # install magerun2
150166 # ###############################################
151167 curl -s -f -L -o /usr/local/bin/magerun2 https://files.magerun.net/n98-magerun2.phar; \
152168 chmod +x /usr/local/bin/magerun2; \
153- /usr/local/bin/docker-layer-clean
169+ /usr/local/bin/docker-layer-clean;
154170
155171WORKDIR /var/www/html
156172ENTRYPOINT ["docker-entrypoint" ]
0 commit comments