This repository has been archived by the owner on Jun 5, 2020. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathDockerfile
58 lines (43 loc) · 1.95 KB
/
Dockerfile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
FROM php:7.4-fpm-alpine
LABEL Maintainer="Mathieu Bour <[email protected]>" \
Description="Base for PHP projects with nginx and PHP 7.4"
ENV PORT=8080
USER root
# Install additional packages:
# - nginx to serve the PHP application
# - gmp for the php-gmp extension required to use ellipitic curves
# - gettext to use the envsubst command
RUN apk add --no-cache nginx gmp gmp-dev gettext fcgi \
&& docker-php-ext-install -j$(nproc) gmp opcache pdo_mysql \
# Download PHP-FPM healthcheck
&& wget -O /usr/local/bin/php-fpm-healthcheck \
"https://raw.githubusercontent.com/renatomefi/php-fpm-healthcheck/master/php-fpm-healthcheck" \
&& chmod +x /usr/local/bin/php-fpm-healthcheck \
# Cleanup: remove PHP source file
&& rm -rf /usr/src /var/www /var/cache/apk/*
# Copy configuration files
COPY confs/nginx/nginx.conf /etc/nginx/nginx.conf
COPY confs/nginx/nginx-gzip.conf /etc/nginx/conf.d/gzip.conf
COPY confs/nginx/nginx-vhost.conf /etc/nginx/conf.d/default.conf
COPY confs/php/php.ini /usr/local/etc/php/php.ini
COPY confs/php/php-fpm.conf /usr/local/etc/php-fpm.conf
COPY confs/php/php-fpm-pool.conf /usr/local/etc/php-fpm.d/www.conf
COPY confs/php/opcache.ini /usr/local/etc/php/conf.d/opcache.ini
# Copy entrypoint and ensure that it is runnable
COPY ./entrypoint.sh /entrypoint.sh
RUN chmod +x /entrypoint.sh
# Setup a default phpinfo page as index
RUN mkdir -p /var/www/public \
&& echo "<?php phpinfo(); ?>" > /var/www/public/index.php
# Make sure files/folders needed by the processes are accessible when they run under the nobody user
RUN chown -R nobody.nobody /run && \
chown -R nobody.nobody /etc/nginx && \
chown -R nobody.nobody /var/lib/nginx && \
chown -R nobody.nobody /var/log/nginx && \
#chown -R nobody.nobody /var/tmp/nginx && \
chown -R nobody.nobody /var/www
# Declare healthcheck
HEALTHCHECK CMD /usr/local/bin/php-fpm-healthcheck || exit 1
USER nobody
WORKDIR /var/www
ENTRYPOINT ["/entrypoint.sh"]