Skip to content

Commit 1da4310

Browse files
committed
Merge pull request #184 from infosiftr/fpm-conf
Refactor FPM support to use upstream's config file directly
2 parents 85447ff + e1292bb commit 1da4310

File tree

7 files changed

+144
-88
lines changed

7 files changed

+144
-88
lines changed

5.5/fpm/Dockerfile

Lines changed: 36 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,42 @@ COPY docker-php-ext-* /usr/local/bin/
6565

6666
##<autogenerated>##
6767
WORKDIR /var/www/html
68-
COPY php-fpm.conf /usr/local/etc/
68+
69+
RUN set -ex \
70+
&& cd /usr/local/etc \
71+
&& if [ -d php-fpm.d ]; then \
72+
# for some reason, upstream's php-fpm.conf.default has "include=NONE/etc/php-fpm.d/*.conf"
73+
sed 's!=NONE/!=!g' php-fpm.conf.default | tee php-fpm.conf > /dev/null; \
74+
cp php-fpm.d/www.conf.default php-fpm.d/www.conf; \
75+
else \
76+
# PHP 5.x don't use "include=" by default, so we'll create our own simple config that mimics PHP 7+ for consistency
77+
mkdir php-fpm.d; \
78+
cp php-fpm.conf.default php-fpm.d/www.conf; \
79+
{ \
80+
echo '[global]'; \
81+
echo 'include=etc/php-fpm.d/*.conf'; \
82+
} | tee php-fpm.conf; \
83+
fi \
84+
&& { \
85+
echo '[global]'; \
86+
echo 'error_log = /proc/self/fd/2'; \
87+
echo; \
88+
echo '[www]'; \
89+
echo '; if we send this to /proc/self/fd/1, it never appears'; \
90+
echo 'access.log = /proc/self/fd/2'; \
91+
echo; \
92+
echo 'clear_env = no'; \
93+
echo; \
94+
echo '; Ensure worker stdout and stderr are sent to the main error log.'; \
95+
echo 'catch_workers_output = yes'; \
96+
} | tee php-fpm.d/docker.conf \
97+
&& { \
98+
echo '[global]'; \
99+
echo 'daemonize = no'; \
100+
echo; \
101+
echo '[www]'; \
102+
echo 'listen = [::]:9000'; \
103+
} | tee php-fpm.d/zz-docker.conf
69104

70105
EXPOSE 9000
71106
CMD ["php-fpm"]

5.5/fpm/php-fpm.conf

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

5.6/fpm/Dockerfile

Lines changed: 36 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,42 @@ COPY docker-php-ext-* /usr/local/bin/
6565

6666
##<autogenerated>##
6767
WORKDIR /var/www/html
68-
COPY php-fpm.conf /usr/local/etc/
68+
69+
RUN set -ex \
70+
&& cd /usr/local/etc \
71+
&& if [ -d php-fpm.d ]; then \
72+
# for some reason, upstream's php-fpm.conf.default has "include=NONE/etc/php-fpm.d/*.conf"
73+
sed 's!=NONE/!=!g' php-fpm.conf.default | tee php-fpm.conf > /dev/null; \
74+
cp php-fpm.d/www.conf.default php-fpm.d/www.conf; \
75+
else \
76+
# PHP 5.x don't use "include=" by default, so we'll create our own simple config that mimics PHP 7+ for consistency
77+
mkdir php-fpm.d; \
78+
cp php-fpm.conf.default php-fpm.d/www.conf; \
79+
{ \
80+
echo '[global]'; \
81+
echo 'include=etc/php-fpm.d/*.conf'; \
82+
} | tee php-fpm.conf; \
83+
fi \
84+
&& { \
85+
echo '[global]'; \
86+
echo 'error_log = /proc/self/fd/2'; \
87+
echo; \
88+
echo '[www]'; \
89+
echo '; if we send this to /proc/self/fd/1, it never appears'; \
90+
echo 'access.log = /proc/self/fd/2'; \
91+
echo; \
92+
echo 'clear_env = no'; \
93+
echo; \
94+
echo '; Ensure worker stdout and stderr are sent to the main error log.'; \
95+
echo 'catch_workers_output = yes'; \
96+
} | tee php-fpm.d/docker.conf \
97+
&& { \
98+
echo '[global]'; \
99+
echo 'daemonize = no'; \
100+
echo; \
101+
echo '[www]'; \
102+
echo 'listen = [::]:9000'; \
103+
} | tee php-fpm.d/zz-docker.conf
69104

70105
EXPOSE 9000
71106
CMD ["php-fpm"]

5.6/fpm/php-fpm.conf

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

7.0/fpm/Dockerfile

Lines changed: 36 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,42 @@ COPY docker-php-ext-* /usr/local/bin/
6565

6666
##<autogenerated>##
6767
WORKDIR /var/www/html
68-
COPY php-fpm.conf /usr/local/etc/
68+
69+
RUN set -ex \
70+
&& cd /usr/local/etc \
71+
&& if [ -d php-fpm.d ]; then \
72+
# for some reason, upstream's php-fpm.conf.default has "include=NONE/etc/php-fpm.d/*.conf"
73+
sed 's!=NONE/!=!g' php-fpm.conf.default | tee php-fpm.conf > /dev/null; \
74+
cp php-fpm.d/www.conf.default php-fpm.d/www.conf; \
75+
else \
76+
# PHP 5.x don't use "include=" by default, so we'll create our own simple config that mimics PHP 7+ for consistency
77+
mkdir php-fpm.d; \
78+
cp php-fpm.conf.default php-fpm.d/www.conf; \
79+
{ \
80+
echo '[global]'; \
81+
echo 'include=etc/php-fpm.d/*.conf'; \
82+
} | tee php-fpm.conf; \
83+
fi \
84+
&& { \
85+
echo '[global]'; \
86+
echo 'error_log = /proc/self/fd/2'; \
87+
echo; \
88+
echo '[www]'; \
89+
echo '; if we send this to /proc/self/fd/1, it never appears'; \
90+
echo 'access.log = /proc/self/fd/2'; \
91+
echo; \
92+
echo 'clear_env = no'; \
93+
echo; \
94+
echo '; Ensure worker stdout and stderr are sent to the main error log.'; \
95+
echo 'catch_workers_output = yes'; \
96+
} | tee php-fpm.d/docker.conf \
97+
&& { \
98+
echo '[global]'; \
99+
echo 'daemonize = no'; \
100+
echo; \
101+
echo '[www]'; \
102+
echo 'listen = [::]:9000'; \
103+
} | tee php-fpm.d/zz-docker.conf
69104

70105
EXPOSE 9000
71106
CMD ["php-fpm"]

7.0/fpm/php-fpm.conf

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

fpm-Dockerfile-block-2

Lines changed: 36 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,40 @@
11
WORKDIR /var/www/html
2-
COPY php-fpm.conf /usr/local/etc/
2+
3+
RUN set -ex \
4+
&& cd /usr/local/etc \
5+
&& if [ -d php-fpm.d ]; then \
6+
# for some reason, upstream's php-fpm.conf.default has "include=NONE/etc/php-fpm.d/*.conf"
7+
sed 's!=NONE/!=!g' php-fpm.conf.default | tee php-fpm.conf > /dev/null; \
8+
cp php-fpm.d/www.conf.default php-fpm.d/www.conf; \
9+
else \
10+
# PHP 5.x don't use "include=" by default, so we'll create our own simple config that mimics PHP 7+ for consistency
11+
mkdir php-fpm.d; \
12+
cp php-fpm.conf.default php-fpm.d/www.conf; \
13+
{ \
14+
echo '[global]'; \
15+
echo 'include=etc/php-fpm.d/*.conf'; \
16+
} | tee php-fpm.conf; \
17+
fi \
18+
&& { \
19+
echo '[global]'; \
20+
echo 'error_log = /proc/self/fd/2'; \
21+
echo; \
22+
echo '[www]'; \
23+
echo '; if we send this to /proc/self/fd/1, it never appears'; \
24+
echo 'access.log = /proc/self/fd/2'; \
25+
echo; \
26+
echo 'clear_env = no'; \
27+
echo; \
28+
echo '; Ensure worker stdout and stderr are sent to the main error log.'; \
29+
echo 'catch_workers_output = yes'; \
30+
} | tee php-fpm.d/docker.conf \
31+
&& { \
32+
echo '[global]'; \
33+
echo 'daemonize = no'; \
34+
echo; \
35+
echo '[www]'; \
36+
echo 'listen = [::]:9000'; \
37+
} | tee php-fpm.d/zz-docker.conf
338

439
EXPOSE 9000
540
CMD ["php-fpm"]

0 commit comments

Comments
 (0)