1
- FROM openmage/php-base:bullseye -latest AS php
1
+ FROM openmage/php-base:bookworm -latest AS php
2
2
3
3
COPY FS /
4
4
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"
6
6
ARG 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"
8
8
ARG PHP_BUILD_REQUIREMENTS_EXTRA=""
9
9
ARG PHP_PECL_REQUIREMENTS="redis igbinary"
10
10
ARG PHP_CONFIGURE_ARGS="--enable-soap --enable-intl"
@@ -26,6 +26,7 @@ ENV PHP_CFLAGS="-fstack-protector-strong -fpic -fpie -O2" \
26
26
27
27
# ## configure php
28
28
# hadolint ignore=DL4006,SC2039,DL3003
29
+ # hadolint ignore=DL4006,SC2039,DL3003
29
30
RUN set -xe; \
30
31
\
31
32
chmod 755 /usr/local/bin/docker-entrypoint; \
@@ -82,18 +83,28 @@ RUN set -xe; \
82
83
${PHP_CONFIGURE_ARGS_FPM:-} \
83
84
; \
84
85
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; \
89
98
curl -fsSL https://github.com/FriendsOfPHP/pickle/releases/latest/download/pickle.phar -o pickle.phar; \
90
99
chmod +x pickle.phar; \
91
100
mv pickle.phar /usr/local/bin/pickle; \
92
101
pickle install redis; \
93
102
pickle install igbinary; \
94
- pickle install
[email protected] ; \
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
+ \
97
108
# for some reason, upstream's php-fpm.conf.default has "include=NONE/etc/php-fpm.d/*.conf"
98
109
sed 's!=NONE/!=!g' /usr/local/etc/php-fpm.conf.default | tee /usr/local/etc/php-fpm.conf > /dev/null; \
99
110
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; \
120
131
echo 'pm.min_spare_servers = 2' ; \
121
132
echo 'pm.max_spare_servers = 5' ; \
122
133
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;
125
135
126
136
# # configure php extensions
127
137
# hadolint ignore=DL4006,SC2086,DL3003
@@ -133,24 +143,30 @@ RUN set -xe; \
133
143
COMPOSER_DOWNLOAD_LATEST=$(curl -s https://api.github.com/repos/composer/composer/releases/latest | jq --raw-output '.assets[] | .browser_download_url' | head -n 1) ; \
134
144
docker-package-download -o /usr/local/bin/composer ${COMPOSER_DOWNLOAD_LATEST}; \
135
145
chmod +x /usr/local/bin/composer; \
136
- composer selfupdate; \
146
+ composer selfupdate;
147
+ RUN set -xe; \
148
+ \
137
149
# ###############################################
138
150
# # install Composer 1
139
151
# ###############################################
140
152
docker-package-download -o /usr/local/bin/composer1 https://getcomposer.org/composer-1.phar; \
141
153
chmod +x /usr/local/bin/composer1; \
142
- composer1 selfupdate; \
154
+ composer1 selfupdate;
155
+ RUN set -xe; \
156
+ \
143
157
# ###############################################
144
158
# # install magerun
145
159
# ###############################################
146
160
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
+ \
148
164
# ###############################################
149
165
# # install magerun2
150
166
# ###############################################
151
167
curl -s -f -L -o /usr/local/bin/magerun2 https://files.magerun.net/n98-magerun2.phar; \
152
168
chmod +x /usr/local/bin/magerun2; \
153
- /usr/local/bin/docker-layer-clean
169
+ /usr/local/bin/docker-layer-clean;
154
170
155
171
WORKDIR /var/www/html
156
172
ENTRYPOINT ["docker-entrypoint" ]
0 commit comments