-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathDockerfile
93 lines (84 loc) · 2.43 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
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
FROM alpine:3.8
### Global environment variables
ENV LANG="en_US.UTF-8" \
LC_ALL="en_US.UTF-8" \
LANGUAGE="en_US.UTF-8" \
TIMEZONE="UTC"
### Ensure www-data (ID: 82) user and make webroot directory
RUN set -x \
&& addgroup -g 82 -S www-data \
&& adduser -u 82 -D -S -G www-data www-data \
&& mkdir -p /var/www/html \
&& chown -R www-data:www-data /var/www/html/
### Install php
RUN apk add --update --no-cache \
ca-certificates \
curl \
nginx \
openssl \
php7-bcmath \
php7-dom \
php7-cli \
php7-ctype \
php7-curl \
php7-fileinfo \
php7-fpm \
php7-ftp \
php7-gd \
php7-gmp \
php7-iconv \
php7-imagick \
php7-intl \
php7-json \
php7-mbstring \
php7-mcrypt \
php7-mysqlnd \
php7-opcache \
php7-openssl \
php7-pcntl \
php7-pdo \
php7-pdo_mysql \
php7-pdo_pgsql \
php7-pdo_sqlite \
php7-phar \
php7-posix \
php7-redis \
php7-session \
php7-simplexml \
php7-sodium \
php7-sqlite3 \
php7-tokenizer \
php7-xdebug \
php7-xml \
php7-xmlreader \
php7-xmlwriter \
php7-zip \
php7-zlib \
supervisor
### Make php bin alias
RUN ln -nfs /usr/bin/php7 /usr/bin/php \
&& ln -nfs /usr/sbin/php-fpm7 /usr/sbin/php-fpm \
&& ln -nfs /etc/php7 /etc/php
### Setting up for PHP
ENV PHP_MEMORY_LIMIT="512M" \
PHP_UPLOAD_MAX_FILESIZE="10M" \
PHP_MAX_FILE_UPLOAD="20" \
PHP_POST_MAX_SIZE="20M"
RUN sed -i "s|;*date.timezone =.*|date.timezone=${TIMEZONE}|i" /etc/php/php.ini \
&& sed -i "s|;*display_errors=.*|display_errors=stderr|i" /etc/php/php.ini \
&& sed -i "s|;*memory_limit =.*|memory_limit=${PHP_MEMORY_LIMIT}|i" /etc/php/php.ini \
&& sed -i "s|;*upload_max_filesize =.*|upload_max_filesize=${PHP_UPLOAD_MAX_FILESIZE}|i" /etc/php/php.ini \
&& sed -i "s|;*max_file_uploads =.*|max_file_uploads=${PHP_MAX_FILE_UPLOAD}|i" /etc/php/php.ini \
&& sed -i "s|;*post_max_size =.*|post_max_size=${PHP_POST_MAX_SIZE}|i" /etc/php/php.ini
### Forward request and error logs to docker log collector
RUN ln -sf /dev/stdout /var/log/nginx/access.log \
&& ln -sf /dev/stderr /var/log/nginx/error.log
#### Copy config files
COPY php-fpm.conf /etc/php/php-fpm.conf
COPY vhost.conf /etc/nginx/conf.d/default.conf
COPY supervisord.conf /etc/supervisord.conf
COPY supervisor.d /etc/supervisor.d
VOLUME /var/www/html
WORKDIR /var/www/html
EXPOSE 80
CMD supervisord -n -c /etc/supervisord.conf