Skip to content

Commit 509bc37

Browse files
authored
Merge pull request #47 from aakb/feature/docker-server
Alpine images
2 parents f41dd8d + 7c6e59a commit 509bc37

File tree

89 files changed

+733
-39
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

89 files changed

+733
-39
lines changed

php5.6-fpm/alpine/Dockerfile

Lines changed: 5 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -10,24 +10,15 @@ ENV PHP_OPCACHE_VALIDATE_TIMESTAMPS="1" \
1010
PHP_MEMORY_LIMIT="128M" \
1111
PHP_POST_MAX_SIZE="8M" \
1212
PHP_UPLOAD_MAX_FILESIZE="2M" \
13+
PHP_TIMEZONE="Europe/Copenhagen" \
14+
PHP_PM_TYPE="dynamic" \
1315
PHP_PM_MAX_CHILDREN="40" \
1416
PHP_PM_MAX_REQUESTS="0" \
1517
PHP_PM_START_SERVERS="5" \
1618
PHP_PM_MIN_SPARE_SERVERS="5" \
1719
PHP_PM_MAX_SPARE_SERVERS="8" \
1820
PHP_REQUEST_SLOWLOG_TIMEOUT="0" \
19-
PHP_SLOWLOG="/var/log/php-slow.log" \
20-
PHP_XDEBUG=0 \
21-
PHP_XDEBUG_MAX_NESTING_LEVEL=265 \
22-
PHP_XDEBUG_REMOTE_ADDR_HEADER="" \
23-
PHP_XDEBUG_REMOTE_AUTOSTART=0 \
24-
PHP_XDEBUG_REMOTE_CONNECT_BACK=1 \
25-
PHP_XDEBUG_REMOTE_ENABLE=1 \
26-
PHP_XDEBUG_REMOTE_HANDLER="dbgp" \
27-
PHP_XDEBUG_REMOTE_HOST="localhost" \
28-
PHP_XDEBUG_REMOTE_LOG="" \
29-
PHP_XDEBUG_REMOTE_MODE="req" \
30-
PHP_XDEBUG_REMOTE_PORT="9000"
21+
PHP_SLOWLOG="/var/log/php-slow.log"
3122

3223
RUN apk --update add --no-cache \
3324
libxslt-dev \
@@ -51,6 +42,7 @@ RUN apk --update add --no-cache \
5142
opcache \
5243
pdo_mysql \
5344
sysvsem \
45+
soap \
5446
xsl \
5547
zip
5648

@@ -68,7 +60,6 @@ RUN mv ${PHP_INI_DIR}/php.ini-production ${PHP_INI_DIR}/php.ini
6860

6961
# Copy custom PHP configuration.
7062
COPY etc/php/conf.d/opcache.ini /usr/local/etc/php/conf.d/20-opcache.ini
71-
COPY etc/php/conf.d/xdebug.ini /usr/local/etc/php/conf.d/30-xdebug.ini
7263
COPY etc/php/conf.d/php.ini /usr/local/etc/php/conf.d/20-php.ini
7364

7465
# Custom FPM configuration.
@@ -78,7 +69,7 @@ EXPOSE 9000
7869

7970
WORKDIR /app
8071

81-
COPY docker-entrypoint.sh /usr/local/bin/
72+
COPY docker-entrypoint.sh /usr/local/bin/
8273
RUN chmod +x /usr/local/bin/docker-entrypoint.sh
8374

8475
CMD [ "docker-entrypoint.sh" ]

php5.6-fpm/alpine/docker-entrypoint.sh

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,21 @@
1-
#!/bin/bash
1+
#!/bin/sh
22
set -e
33

44
# Add docker host domain to hosts file
55
if [ ! -z "${DOCKER_HOST_DOMAIN}" ]; then
66
echo $(getent hosts host.docker.internal | cut -d" " -f1) ${DOCKER_HOST_DOMAIN} >> /etc/hosts
77
fi
88

9-
# Set xdebug remote host to docker host ip.
10-
export PHP_XDEBUG_REMOTE_HOST=$(getent hosts host.docker.internal | cut -d" " -f1)
9+
## Set selected composer version. Default version 1.
10+
if [ ! -z "${COMPOSER_VERSION}" ]; then
11+
if [ "${COMPOSER_VERSION}" = "1" ]; then
12+
ln -fs /usr/local/bin/composer1 /usr/local/bin/composer
13+
else
14+
ln -fs /usr/local/bin/composer2 /usr/local/bin/composer
15+
fi
16+
else
17+
ln -fs /usr/local/bin/composer1 /usr/local/bin/composer
18+
fi
1119

1220
## Start the php FPM process.
1321
echo "Starting PHP 5.6 FPM"

php5.6-fpm/alpine/etc/php-fpm.d/fpm.ini

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
[www]
2-
pm = dynamic
2+
pm = ${PHP_PM_TYPE}
33
pm.max_children = ${PHP_PM_MAX_CHILDREN}
44
pm.start_servers = ${PHP_PM_START_SERVERS}
55
pm.min_spare_servers = ${PHP_PM_MIN_SPARE_SERVERS}

php5.6-fpm/alpine/etc/php/conf.d/php.ini

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,4 +9,4 @@ memory_limit = ${PHP_MEMORY_LIMIT}
99
post_max_size = ${PHP_POST_MAX_SIZE}
1010
upload_max_filesize = ${PHP_UPLOAD_MAX_FILESIZE}
1111

12-
date.timezone = UTC
12+
date.timezone = ${PHP_TIMEZONE}

php5.6-fpm/alpine/etc/php/conf.d/xdebug.ini

Lines changed: 0 additions & 11 deletions
This file was deleted.

php5.6-fpm/xenial/Dockerfile

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -58,10 +58,17 @@ RUN sed -i '/memory_limit = 128M/c memory_limit = 256M' /etc/php/${PHP_VERSION}/
5858
&& sed -i '/upload_max_filesize = 2M/c upload_max_filesize = 16M' /etc/php/${PHP_VERSION}/fpm/php.ini \
5959
&& sed -i '/post_max_size = 8M/c post_max_size = 20M' /etc/php/${PHP_VERSION}/fpm/php.ini
6060

61-
# Install composer
62-
RUN php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
63-
RUN php composer-setup.php --install-dir=/usr/local/bin --filename=composer
64-
RUN php -r "unlink('composer-setup.php');"
61+
# Install composer (both composer version as set symlink to right version in entry-point)
62+
ADD https://getcomposer.org/composer.phar /usr/local/bin/composer1
63+
ADD https://getcomposer.org/composer.phar /usr/local/bin/composer2
64+
RUN chmod 755 /usr/local/bin/composer1 \
65+
&& composer1 self-update --1 \
66+
&& composer1 self-update --stable \
67+
&& chmod 755 /usr/local/bin/composer2 \
68+
&& composer2 self-update --stable
69+
70+
# Set default composer version (can be overriden in entry-point via COMPOSER_VERSION env)
71+
RUN ln -fs /usr/local/bin/composer1 /usr/local/bin/composer
6572

6673
# Add mhsendmail for mailhog
6774
ADD https://github.com/mailhog/mhsendmail/releases/download/v0.2.0/mhsendmail_linux_amd64 /usr/local/bin/mhsendmail

php5.6-fpm/xenial/docker-entrypoint.sh

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,17 @@ fi
1414
## Run templates with configuration.
1515
/usr/local/bin/confd --onetime --backend env --confdir /etc/confd
1616

17+
## Set selected composer version. Default version 1.
18+
if [ ! -z "${COMPOSER_VERSION}" ]; then
19+
if [ "${COMPOSER_VERSION}" = "1" ]; then
20+
ln -fs /usr/local/bin/composer1 /usr/local/bin/composer
21+
else
22+
ln -fs /usr/local/bin/composer2 /usr/local/bin/composer
23+
fi
24+
else
25+
ln -fs /usr/local/bin/composer1 /usr/local/bin/composer
26+
fi
27+
1728
## Start the php FPM process.
1829
echo "Starting PHP 5.6 FPM"
1930
php-fpm5.6 -F --pid /var/run/php/php-fpm5.6.pid -y /etc/php/5.6/fpm/php-fpm.conf

php7.0-fpm/alpine/Dockerfile

Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
FROM php:7.0-fpm-alpine
2+
LABEL maintainer="ITK Dev <[email protected]>"
3+
4+
ENV PHP_OPCACHE_VALIDATE_TIMESTAMPS="1" \
5+
PHP_OPCACHE_MAX_ACCELERATED_FILES="20000" \
6+
PHP_OPCACHE_MEMORY_CONSUMPTION="64" \
7+
PHP_OPCACHE_MAX_WASTED_PERCENTAGE="10" \
8+
PHP_APCU_MEMORY_SIZE="16M" \
9+
PHP_MAX_EXECUTION_TIME="30" \
10+
PHP_MEMORY_LIMIT="128M" \
11+
PHP_POST_MAX_SIZE="8M" \
12+
PHP_UPLOAD_MAX_FILESIZE="2M" \
13+
PHP_TIMEZONE="Europe/Copenhagen" \
14+
PHP_PM_TYPE="dynamic" \
15+
PHP_PM_MAX_CHILDREN="40" \
16+
PHP_PM_MAX_REQUESTS="0" \
17+
PHP_PM_START_SERVERS="5" \
18+
PHP_PM_MIN_SPARE_SERVERS="5" \
19+
PHP_PM_MAX_SPARE_SERVERS="8" \
20+
PHP_REQUEST_SLOWLOG_TIMEOUT="0" \
21+
PHP_SLOWLOG="/var/log/php-slow.log"
22+
23+
RUN apk --update add --no-cache \
24+
libxslt-dev \
25+
libzip-dev \
26+
libpng-dev \
27+
gettext-dev \
28+
git \
29+
unzip \
30+
icu-dev \
31+
openldap-dev \
32+
libmcrypt-dev \
33+
&& docker-php-ext-install -j$(nproc) \
34+
bcmath \
35+
gd \
36+
gettext \
37+
intl \
38+
ldap \
39+
pdo_mysql \
40+
mysqli \
41+
opcache \
42+
pdo_mysql \
43+
sysvsem \
44+
soap \
45+
xsl \
46+
zip
47+
48+
RUN apk --update add --no-cache --virtual .build-deps autoconf g++ make \
49+
&& pecl install redis-4.0.1 \
50+
&& docker-php-ext-enable redis \
51+
&& apk del .build-deps
52+
53+
# Added cache tool.
54+
ADD https://gordalina.github.io/cachetool/downloads/cachetool.phar /usr/local/bin/cachetool
55+
RUN chmod +x /usr/local/bin/cachetool
56+
57+
# Use default PHP production configuration.
58+
RUN mv ${PHP_INI_DIR}/php.ini-production ${PHP_INI_DIR}/php.ini
59+
60+
# Copy custom PHP configuration.
61+
COPY etc/php/conf.d/opcache.ini /usr/local/etc/php/conf.d/20-opcache.ini
62+
COPY etc/php/conf.d/php.ini /usr/local/etc/php/conf.d/20-php.ini
63+
64+
# Custom FPM configuration.
65+
COPY etc/php-fpm.d/fpm.ini /usr/local/etc/php-fpm.d/zz-fpm-docker.conf
66+
67+
EXPOSE 9000
68+
69+
WORKDIR /app
70+
71+
COPY docker-entrypoint.sh /usr/local/bin/
72+
RUN chmod +x /usr/local/bin/docker-entrypoint.sh
73+
74+
CMD [ "docker-entrypoint.sh" ]
75+
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
#!/bin/sh
2+
set -e
3+
4+
# Add docker host domain to hosts file
5+
if [ ! -z "${DOCKER_HOST_DOMAIN}" ]; then
6+
echo $(getent hosts host.docker.internal | cut -d" " -f1) ${DOCKER_HOST_DOMAIN} >> /etc/hosts
7+
fi
8+
9+
## Set selected composer version. Default version 1.
10+
if [ ! -z "${COMPOSER_VERSION}" ]; then
11+
if [ "${COMPOSER_VERSION}" = "1" ]; then
12+
ln -fs /usr/local/bin/composer1 /usr/local/bin/composer
13+
else
14+
ln -fs /usr/local/bin/composer2 /usr/local/bin/composer
15+
fi
16+
else
17+
ln -fs /usr/local/bin/composer1 /usr/local/bin/composer
18+
fi
19+
20+
## Start the php FPM process.
21+
echo "Starting PHP 7.0 FPM"
22+
/usr/local/bin/docker-php-entrypoint php-fpm
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
[www]
2+
pm = ${PHP_PM_TYPE}
3+
pm.max_children = ${PHP_PM_MAX_CHILDREN}
4+
pm.start_servers = ${PHP_PM_START_SERVERS}
5+
pm.min_spare_servers = ${PHP_PM_MIN_SPARE_SERVERS}
6+
pm.max_spare_servers = ${PHP_PM_MAX_SPARE_SERVERS}
7+
pm.max_requests = ${PHP_PM_MAX_REQUESTS}
8+
9+
request_slowlog_timeout = ${PHP_REQUEST_SLOWLOG_TIMEOUT}
10+
slowlog = ${PHP_SLOWLOG}
11+
12+
; Enable the FPM status page
13+
pm.status_path = /status

0 commit comments

Comments
 (0)