Skip to content

Commit f2a2a6a

Browse files
committed
Add PHP 8.5 RC
1 parent 33ed9f2 commit f2a2a6a

File tree

4 files changed

+305
-0
lines changed

4 files changed

+305
-0
lines changed

php/Dockerfile-8.5

Lines changed: 125 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,125 @@
1+
FROM php:8.5-rc-apache-bookworm
2+
3+
LABEL maintainer="Jakub Bouček <[email protected]>"
4+
LABEL org.label-schema.name="PHP 8.5 (Pre-release, Apache module)"
5+
LABEL org.label-schema.vcs-url="https://github.com/jakubboucek/docker-lamp-devstack"
6+
7+
# Workdir during installation
8+
WORKDIR /tmp
9+
10+
# Use local mirrors to install Debian updates
11+
COPY sources.list-bookworm /etc/apt/sources.list
12+
13+
# Prevent interactive block
14+
ARG DEBIAN_FRONTEND=noninteractive
15+
16+
# OS binaries install && update critical binaries
17+
RUN set -eux; \
18+
apt-get update; \
19+
apt-get install --no-install-recommends -y \
20+
ca-certificates \
21+
git \
22+
libavif-dev \
23+
libbz2-dev \
24+
libfreetype6-dev \
25+
libgmp-dev \
26+
libicu-dev \
27+
libjpeg62-turbo-dev \
28+
# libmemcached-dev \
29+
libpng-dev \
30+
libsodium-dev \
31+
libwebp-dev \
32+
libxslt-dev \
33+
libzip-dev \
34+
# zlib1g-dev \
35+
nano \
36+
openssl \
37+
tzdata \
38+
unzip \
39+
zip; \
40+
docker-php-ext-configure \
41+
gd --with-avif --with-freetype --with-jpeg --with-webp; \
42+
docker-php-ext-install -j$(nproc) \
43+
bcmath \
44+
bz2 \
45+
calendar \
46+
exif \
47+
gd \
48+
gettext \
49+
gmp \
50+
intl \
51+
mysqli \
52+
opcache \
53+
pcntl \
54+
pdo_mysql \
55+
soap \
56+
sockets \
57+
sodium \
58+
sysvmsg \
59+
sysvsem \
60+
sysvshm \
61+
xsl \
62+
zip; \
63+
a2enmod \
64+
expires \
65+
headers \
66+
rewrite; \
67+
apt-get clean -y && \
68+
apt-get autoclean -y && \
69+
apt-get autoremove -y && \
70+
rm -rf /var/cache/* /var/lib/apt/lists/* /var/lib/log/* /tmp/* /var/tmp/*;
71+
72+
# Configure Apache & PHP
73+
# 32767 = E_ALL
74+
ENV PHP_ERROR_REPORTING=32767
75+
ENV PHP_DISPLAY_ERRORS=1
76+
ENV PHP_DISPLAY_STARTUP_ERRORS=1
77+
ENV PHP_ERROR_LOG=""
78+
ENV PHP_LOG_ERRORS=0
79+
ENV PHP_MAX_EXECUTION_TIME=30
80+
ENV PHP_MEMORY_LIMIT=2G
81+
ENV PHP_SESSION_SAVE_PATH=""
82+
ENV TZ=UTC
83+
COPY core.ini /usr/local/etc/php/conf.d/core.ini
84+
85+
# Configure OPcache
86+
ENV PHP_OPCACHE_BLACKLIST_FILENAME=""
87+
ENV PHP_OPCACHE_ENABLE=1
88+
ENV PHP_OPCACHE_ENABLE_CLI=0
89+
ENV PHP_OPCACHE_JIT=disable
90+
ENV PHP_OPCACHE_JIT_BUFFER_SIZE=64M
91+
ENV PHP_OPCACHE_MEMORY_CONSUPTION=128
92+
ENV PHP_OPCACHE_PRELOAD=""
93+
ENV PHP_OPCACHE_PRELOAD_USER=""
94+
ENV PHP_OPCACHE_REVALIDATE_FREQ=2
95+
ENV PHP_OPCACHE_VALIDATE_TIMESTAMPS=1
96+
COPY opcache.ini /usr/local/etc/php/conf.d/opcache.ini
97+
COPY opcache-7.4.ini /usr/local/etc/php/conf.d/opcache-7.4.ini
98+
COPY opcache-jit.ini /usr/local/etc/php/conf.d/opcache-jit.ini
99+
100+
# Install Mecached extension
101+
# RUN set -eux; \
102+
# pecl install memcached; \
103+
# pecl clear-cache; \
104+
# docker-php-ext-enable memcached; \
105+
# rm -rf /tmp/* /var/tmp/*;
106+
107+
# Move Apache Document root to sub-directory `www` (PHP frameworks convention)
108+
ENV APACHE_DOCUMENT_ROOT=/var/www/html/www
109+
110+
# Configure Apache listening port
111+
ENV PORT=80
112+
113+
# Setup Devstack (install Composer, setup DocumentRoot and Port)
114+
RUN set -eux; \
115+
curl -sS https://getcomposer.org/installer -o /tmp/composer-setup.php; \
116+
php /tmp/composer-setup.php --install-dir=/usr/local/bin --filename=composer; \
117+
COMPOSER_BIN_DIR=$(composer global config bin-dir --absolute) 2>/dev/null; \
118+
echo "export PATH=${COMPOSER_BIN_DIR}:\${PATH}" >> ~/.bashrc; \
119+
sed -ri -e 's!/var/www/html!${APACHE_DOCUMENT_ROOT}!g' /etc/apache2/sites-available/*.conf; \
120+
sed -ri -e 's!:80>!:${PORT}>!g' /etc/apache2/sites-available/*.conf; \
121+
sed -ri -e 's!Listen 80!Listen ${PORT}!g' /etc/apache2/ports.conf; \
122+
rm -rf /tmp/*;
123+
124+
# Workdir after installation
125+
WORKDIR /var/www/html

php/Dockerfile-8.5-cli

Lines changed: 112 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,112 @@
1+
FROM php:8.5-rc-cli-bookworm
2+
3+
LABEL maintainer="Jakub Bouček <[email protected]>"
4+
LABEL org.label-schema.name="PHP 8.5 (Pre-release, CLI)"
5+
LABEL org.label-schema.vcs-url="https://github.com/jakubboucek/docker-lamp-devstack"
6+
7+
# Workdir during installation
8+
WORKDIR /tmp
9+
10+
# Use local mirrors to install Debian updates
11+
COPY sources.list-bookworm /etc/apt/sources.list
12+
13+
# Prevent interactive block
14+
ARG DEBIAN_FRONTEND=noninteractive
15+
16+
# OS binaries install && update critical binaries
17+
RUN set -eux; \
18+
apt-get update; \
19+
apt-get install --no-install-recommends -y \
20+
ca-certificates \
21+
git \
22+
libavif-dev \
23+
libbz2-dev \
24+
libfreetype6-dev \
25+
libgmp-dev \
26+
libicu-dev \
27+
libjpeg62-turbo-dev \
28+
# libmemcached-dev \
29+
libpng-dev \
30+
libsodium-dev \
31+
libwebp-dev \
32+
libxslt-dev \
33+
libzip-dev \
34+
# zlib1g-dev \
35+
nano \
36+
openssl \
37+
tzdata \
38+
unzip \
39+
zip; \
40+
docker-php-ext-configure \
41+
gd --with-avif --with-freetype --with-jpeg --with-webp; \
42+
docker-php-ext-install -j$(nproc) \
43+
bcmath \
44+
bz2 \
45+
calendar \
46+
exif \
47+
gd \
48+
gettext \
49+
gmp \
50+
intl \
51+
mysqli \
52+
opcache \
53+
pcntl \
54+
pdo_mysql \
55+
soap \
56+
sockets \
57+
sodium \
58+
sysvmsg \
59+
sysvsem \
60+
sysvshm \
61+
xsl \
62+
zip; \
63+
apt-get clean -y && \
64+
apt-get autoclean -y && \
65+
apt-get autoremove -y && \
66+
rm -rf /var/cache/* /var/lib/apt/lists/* /var/lib/log/* /tmp/* /var/tmp/*;
67+
68+
# Configure Apache & PHP
69+
# 32767 = E_ALL
70+
ENV PHP_ERROR_REPORTING=32767
71+
ENV PHP_DISPLAY_ERRORS=1
72+
ENV PHP_DISPLAY_STARTUP_ERRORS=1
73+
ENV PHP_ERROR_LOG=""
74+
ENV PHP_LOG_ERRORS=0
75+
ENV PHP_MAX_EXECUTION_TIME=30
76+
ENV PHP_MEMORY_LIMIT=2G
77+
ENV PHP_SESSION_SAVE_PATH=""
78+
ENV TZ=UTC
79+
COPY core.ini /usr/local/etc/php/conf.d/core.ini
80+
81+
# Configure OPcache
82+
ENV PHP_OPCACHE_BLACKLIST_FILENAME=""
83+
ENV PHP_OPCACHE_ENABLE=1
84+
ENV PHP_OPCACHE_ENABLE_CLI=0
85+
ENV PHP_OPCACHE_JIT=disable
86+
ENV PHP_OPCACHE_JIT_BUFFER_SIZE=64M
87+
ENV PHP_OPCACHE_MEMORY_CONSUPTION=128
88+
ENV PHP_OPCACHE_PRELOAD=""
89+
ENV PHP_OPCACHE_PRELOAD_USER=""
90+
ENV PHP_OPCACHE_REVALIDATE_FREQ=2
91+
ENV PHP_OPCACHE_VALIDATE_TIMESTAMPS=1
92+
COPY opcache.ini /usr/local/etc/php/conf.d/opcache.ini
93+
COPY opcache-7.4.ini /usr/local/etc/php/conf.d/opcache-7.4.ini
94+
COPY opcache-jit.ini /usr/local/etc/php/conf.d/opcache-jit.ini
95+
96+
# Install Mecached extension
97+
# RUN set -eux; \
98+
# pecl install memcached; \
99+
# pecl clear-cache; \
100+
# docker-php-ext-enable memcached; \
101+
# rm -rf /tmp/* /var/tmp/*;
102+
103+
# Setup Devstack (install Composer)
104+
RUN set -eux; \
105+
curl -sS https://getcomposer.org/installer -o /tmp/composer-setup.php; \
106+
php /tmp/composer-setup.php --install-dir=/usr/local/bin --filename=composer; \
107+
COMPOSER_BIN_DIR=$(composer global config bin-dir --absolute) 2>/dev/null; \
108+
echo "export PATH=${COMPOSER_BIN_DIR}:\${PATH}" >> ~/.bashrc; \
109+
rm -rf /tmp/*;
110+
111+
# Workdir after installation
112+
WORKDIR /

php/build-php-8.5-cli.sh

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
#!/bin/bash
2+
3+
# shellcheck disable=SC2086
4+
set -eux;
5+
6+
cd "$(dirname $0)";
7+
8+
### PHP 8.5
9+
if [ "${NO_PULL:-0}" -ne "1" ]; then
10+
docker pull php:8.5-rc-cli-bookworm
11+
docker run --rm php:8.5-rc-cli-bookworm php --version
12+
fi
13+
14+
if [ "${NO_BUILD:-0}" -ne "1" ]; then
15+
docker build --progress plain -f ./Dockerfile-8.5-cli -t jakubboucek/lamp-devstack-php:8.5-rc-cli ./
16+
PHP_RELEASE=$(docker run --rm jakubboucek/lamp-devstack-php:8.5-rc-cli php -r "echo PHP_RELEASE_VERSION;")
17+
PHP_RELEASE_EXTRA=$(docker run --rm jakubboucek/lamp-devstack-php:8.5-rc-cli php -r "echo PHP_EXTRA_VERSION;")
18+
docker tag jakubboucek/lamp-devstack-php:8.5-rc-cli jakubboucek/lamp-devstack-php:8.5.${PHP_RELEASE}-rc-cli
19+
docker tag jakubboucek/lamp-devstack-php:8.5-rc-cli jakubboucek/lamp-devstack-php:8.5.${PHP_RELEASE}-rc-${PHP_RELEASE_EXTRA}-cli
20+
fi
21+
22+
if [ "${NO_TEST:-0}" -ne "1" ]; then
23+
docker run --rm jakubboucek/lamp-devstack-php:8.5-rc-cli php --version
24+
docker run --rm jakubboucek/lamp-devstack-php:8.5-rc-cli php -r "echo implode(', ', get_loaded_extensions()) . PHP_EOL;"
25+
docker run --rm jakubboucek/lamp-devstack-php:8.5-rc-cli php -r "var_export(gd_info()) . PHP_EOL;"
26+
fi
27+
28+
if [ "${NO_PUSH:-0}" -ne "1" ]; then
29+
PHP_RELEASE=$(docker run --rm jakubboucek/lamp-devstack-php:8.5-cli php -r "echo PHP_RELEASE_VERSION;")
30+
PHP_RELEASE_EXTRA=$(docker run --rm jakubboucek/lamp-devstack-php:8.5-rc-cli php -r "echo PHP_EXTRA_VERSION;")
31+
docker push jakubboucek/lamp-devstack-php:8.5.${PHP_RELEASE}-rc-${PHP_RELEASE_EXTRA}-cli
32+
docker push jakubboucek/lamp-devstack-php:8.5.${PHP_RELEASE}-rc-cli
33+
docker push jakubboucek/lamp-devstack-php:8.5-rc-cli
34+
fi

php/build-php-8.5.sh

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
#!/bin/bash
2+
3+
# shellcheck disable=SC2086
4+
set -eux;
5+
6+
cd "$(dirname $0)";
7+
8+
### PHP 8.5
9+
if [ "${NO_PULL:-0}" -ne "1" ]; then
10+
docker pull php:8.5-rc-apache-bookworm
11+
docker run --rm php:8.5-rc-apache-bookworm php --version
12+
fi
13+
14+
if [ "${NO_BUILD:-0}" -ne "1" ]; then
15+
docker build --progress plain -f ./Dockerfile-8.5 -t jakubboucek/lamp-devstack-php:8.5-rc ./
16+
PHP_RELEASE=$(docker run --rm jakubboucek/lamp-devstack-php:8.5-rc php -r "echo PHP_RELEASE_VERSION;")
17+
PHP_RELEASE_EXTRA=$(docker run --rm jakubboucek/lamp-devstack-php:8.5-rc php -r "echo PHP_EXTRA_VERSION;")
18+
docker tag jakubboucek/lamp-devstack-php:8.5-rc jakubboucek/lamp-devstack-php:8.5.${PHP_RELEASE}-rc
19+
docker tag jakubboucek/lamp-devstack-php:8.5-rc jakubboucek/lamp-devstack-php:8.5.${PHP_RELEASE}-rc-${PHP_RELEASE_EXTRA}
20+
fi
21+
22+
if [ "${NO_TEST:-0}" -ne "1" ]; then
23+
docker run --rm jakubboucek/lamp-devstack-php:8.5-rc php --version
24+
docker run --rm jakubboucek/lamp-devstack-php:8.5-rc php -r "echo implode(', ', get_loaded_extensions()) . PHP_EOL;"
25+
docker run --rm jakubboucek/lamp-devstack-php:8.5-rc php -r "var_export(gd_info()) . PHP_EOL;"
26+
fi
27+
28+
if [ "${NO_PUSH:-0}" -ne "1" ]; then
29+
PHP_RELEASE=$(docker run --rm jakubboucek/lamp-devstack-php:8.5-rc php -r "echo PHP_RELEASE_VERSION;")
30+
PHP_RELEASE_EXTRA=$(docker run --rm jakubboucek/lamp-devstack-php:8.5-rc php -r "echo PHP_EXTRA_VERSION;")
31+
docker push jakubboucek/lamp-devstack-php:8.5.${PHP_RELEASE}-rc-${PHP_RELEASE_EXTRA}
32+
docker push jakubboucek/lamp-devstack-php:8.5.${PHP_RELEASE}-rc
33+
docker push jakubboucek/lamp-devstack-php:8.5-rc
34+
fi

0 commit comments

Comments
 (0)