Skip to content

Commit 9adbab1

Browse files
committed
Add PHP 8.1 images
Meantime using 8.1.0-RC1
1 parent 4bad94f commit 9adbab1

File tree

5 files changed

+185
-1
lines changed

5 files changed

+185
-1
lines changed

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
NAME = skilldlabs/php
2-
TAGS ?= 73 73-fpm 73-fpm-dev 73-fpm-extra1 74 74-fpm 74-fpm-dev 8 8-fpm
2+
TAGS ?= 73 73-fpm 73-fpm-dev 73-fpm-extra1 74 74-fpm 74-fpm-dev 8 8-fpm 81 81-fpm
33

44
COMPOSER_HASH ?= 756890a4488ce9024fc62c56153228907f1545c228516cbf63f885e036d37e9a59d27d63f46af1d4d07ee0f76181c7d3
55
DRUSH_VERSION ?= 8.4.8

php81-fpm/Dockerfile

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
FROM skilldlabs/php:81
2+
3+
ARG BUILD_DATE
4+
ARG VCS_REF
5+
6+
LABEL org.label-schema.build-date=$BUILD_DATE \
7+
org.label-schema.vcs-ref=$VCS_REF \
8+
org.label-schema.schema-version="1.0" \
9+
org.label-schema.name="docker-php" \
10+
org.label-schema.description="PHP-FPM 8.1 Alpinelinux for Drupal - git, composer, drush 8, sqlite, patch" \
11+
org.label-schema.vcs-url="https://github.com/skilld-labs/docker-php" \
12+
maintainer="Andy Postnikov <andypost@ya.ru>"
13+
14+
RUN set -e \
15+
&& mkdir -p /var/www \
16+
&& addgroup -g 1000 -S www-skilld \
17+
&& adduser -u 1000 -D -S -G www-skilld www-data \
18+
&& apk add --no-cache \
19+
php81-fpm
20+
21+
COPY php-fpm.conf /etc/php81/
22+
23+
#USER www-data
24+
WORKDIR /var/www/html
25+
VOLUME /var/www/html
26+
27+
EXPOSE 9000
28+
29+
CMD ["php-fpm81", "-F"]

php81-fpm/php-fpm.conf

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
[global]
2+
error_log = /proc/self/fd/2
3+
log_level = notice
4+
daemonize = no
5+
6+
[app]
7+
user = www-data
8+
group = www-skilld
9+
listen = [::]:9000
10+
access.log = /proc/self/fd/2
11+
catch_workers_output = yes
12+
clear_env = no
13+
security.limit_extensions = .php
14+
15+
pm = ondemand
16+
pm.max_children = 4
17+
pm.max_requests = 100
18+
pm.process_idle_timeout = 30
19+
20+
php_value[memory_limit] = 512M

php81/Dockerfile

Lines changed: 99 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,99 @@
1+
FROM alpine:edge
2+
3+
ARG COMPOSER_HASH
4+
ARG DRUSH_VERSION
5+
ARG BUILD_DATE
6+
ARG VCS_REF
7+
8+
LABEL org.label-schema.build-date=$BUILD_DATE \
9+
org.label-schema.vcs-ref=$VCS_REF \
10+
org.label-schema.schema-version="1.0" \
11+
org.label-schema.name="docker-php" \
12+
org.label-schema.description="PHP 8.1 Alpine for Drupal - git, composer, drush 8, sqlite, patch" \
13+
org.label-schema.vcs-url="https://github.com/skilld-labs/docker-php" \
14+
maintainer="Andy Postnikov <andypost@ya.ru>"
15+
16+
ENV PHPRUN_DEPS \
17+
curl \
18+
git \
19+
make \
20+
mariadb-client \
21+
openssh-client \
22+
patch \
23+
sqlite
24+
ENV PHP_CLI_SERVER_WORKERS 4
25+
26+
RUN set -e \
27+
&& echo 'http://dl-cdn.alpinelinux.org/alpine/edge/testing' >> /etc/apk/repositories \
28+
&& apk add --upgrade --no-cache \
29+
php81 \
30+
php81-pecl-apcu \
31+
php81-pecl-igbinary \
32+
php81-pecl-xdebug \
33+
php81-bcmath \
34+
php81-ctype \
35+
php81-curl \
36+
php81-dom \
37+
php81-fileinfo \
38+
php81-gd \
39+
php81-gmp \
40+
php81-iconv \
41+
# php81-json \
42+
php81-mbstring \
43+
php81-opcache \
44+
php81-openssl \
45+
php81-pcntl \
46+
php81-pdo_mysql \
47+
php81-pdo_sqlite \
48+
php81-phar \
49+
php81-session \
50+
php81-simplexml \
51+
php81-tokenizer \
52+
php81-xml \
53+
php81-xmlreader \
54+
php81-xmlwriter \
55+
php81-zip \
56+
$PHPRUN_DEPS \
57+
&& ln -s php81 /usr/bin/php \
58+
# build extra extensions
59+
# && apk add --virtual .php-build \
60+
# php8-dev php8-pear make gcc g++ \
61+
# && sed -ie 's/-n//g' /usr/bin/pecl8 \
62+
# && CFLAGS="-Os -fomit-frame-pointer -g -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -fvisibility=hidden -Wall -Wno-strict-aliasing" \
63+
# CPPFLAGS="$CFLAGS" LDFLAGS="-Wl,-O1 -Wl,--hash-style=both -pie" \
64+
# pecl8 install redis \
65+
# && echo 'extension=redis' > /etc/php8/conf.d/redis.ini \
66+
# && echo 'xhprof.output_dir=/tmp' >> /etc/php8/conf.d/xhprof.ini \
67+
# && strip /usr/lib/php8/modules/redis.so \
68+
# && wget https://github.com/xdebug/xdebug/archive/master.zip && unzip master.zip && rm master.zip \
69+
# && cd xdebug-master && phpize8 && ./configure --with-php-config=php-config8 \
70+
# && CFLAGS="-Os -fomit-frame-pointer -g -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -fvisibility=hidden -Wall -Wno-strict-aliasing" \
71+
# CPPFLAGS="$CFLAGS" LDFLAGS="-Wl,-O1 -Wl,--hash-style=both -pie" \
72+
# pecl8 install xdebug-3.0.0beta1 \
73+
# make install \
74+
# && cd .. && rm -rf xdebug-master \
75+
# && echo ';zend_extension=xdebug' > /etc/php8/conf.d/xdebug.ini \
76+
# && strip /usr/lib/php8/modules/xdebug.so \
77+
# clean-up
78+
# && apk del --no-network .php-build \
79+
# && rm -fr /tmp/pear /usr/include /usr/share/pear /var/cache/apk/* \
80+
&& php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" \
81+
&& php -r "if (hash_file('SHA384', 'composer-setup.php') === getenv('COMPOSER_HASH')) { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;" \
82+
&& php composer-setup.php \
83+
--install-dir=/usr/bin \
84+
--filename=composer1 \
85+
--1 \
86+
&& php composer-setup.php \
87+
--install-dir=/usr/bin \
88+
--filename=composer2 \
89+
--2 \
90+
&& ln -s composer2 /usr/bin/composer \
91+
&& php -r "unlink('composer-setup.php');" \
92+
&& php -r "copy('https://github.com/drush-ops/drush/releases/download/$DRUSH_VERSION/drush.phar', '/usr/bin/drush');" \
93+
&& chmod +x /usr/bin/drush && /usr/bin/drush version && rm -fr /root/.drush
94+
95+
COPY php.ini /etc/php8/conf.d/xx-drupal.ini
96+
97+
WORKDIR /srv
98+
99+
CMD ["php", "-t", "/srv", "-S", "0.0.0.0:80"]

php81/php.ini

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
; PHP limits
2+
memory_limit = 512M
3+
max_input_time = 240
4+
max_execution_time = 240
5+
6+
upload_max_filesize = 200M
7+
post_max_size = 200M
8+
9+
; XDebug configuration
10+
xdebug.max_nesting_level = 2000
11+
12+
xdebug.mode=debug
13+
xdebug.discover_client_host=1
14+
15+
; Show PHP errors
16+
display_errors = On
17+
error_reporting = E_ALL | E_STRICT
18+
19+
; Use PHP short tags
20+
short_open_tag = Off
21+
22+
; OPCache configuration
23+
opcache.memory_consumption = 196
24+
opcache.interned_strings_buffer = 16
25+
opcache.max_accelerated_files = 10000
26+
opcache.revalidate_freq = 0
27+
opcache.validate_timestamps = 1
28+
opcache.fast_shutdown = 1
29+
opcache.enable_cli = 1
30+
; opcache.jit_buffer_size=10M
31+
32+
apc.shm_size = 128M
33+
apc.enable_cli = 1
34+
35+
cgi.fix_pathinfo = 0;
36+
always_populate_raw_post_data = -1

0 commit comments

Comments
 (0)