-
Notifications
You must be signed in to change notification settings - Fork 6
/
Copy pathDockerfile
93 lines (80 loc) · 2.31 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 php:fpm-alpine
LABEL Maintainer Michael Shihjay Chen <[email protected]>
RUN rm -f /etc/apk/repositories &&\
echo "http://dl-cdn.alpinelinux.org/alpine/v3.9/main" >> /etc/apk/repositories &&\
echo "http://dl-cdn.alpinelinux.org/alpine/v3.9/community" >> /etc/apk/repositories &&\
apk add --no-cache --virtual .build-deps \
zlib-dev \
libjpeg-turbo-dev \
libpng-dev \
libxml2-dev \
php7-dev \
autoconf \
gcc \
g++ \
make \
pcre-dev \
bzip2-dev &&\
apk add --update --no-cache \
jpegoptim \
pngquant \
optipng \
supervisor \
nano \
icu-dev \
mariadb-client \
imagemagick-dev \
libssh2-dev \
libzip-dev \
imap-dev \
libtool \
freetype-dev &&\
docker-php-ext-configure \
opcache --enable-opcache &&\
docker-php-ext-configure gd --with-freetype --with-jpeg &&\
PHP_OPENSSL=yes docker-php-ext-configure imap --with-imap --with-imap-ssl &&\
docker-php-ext-install \
opcache \
mysqli \
pdo \
pdo_mysql \
sockets \
json \
intl \
gd \
xml \
zip \
bz2 \
pcntl \
soap \
imap \
bcmath &&\
pecl install imagick &&\
docker-php-ext-enable imagick &&\
mv "$PHP_INI_DIR/php.ini-production" "$PHP_INI_DIR/php.ini" &&\
apk del .build-deps
WORKDIR "/var/www/as"
# Install composer
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
ENV COMPOSER_ALLOW_SUPERUSER=1
ENV PATH="./vendor/bin:$PATH"
# Copy existing application directory permissions
COPY --chown=www-data:www-data . /var/www/as
RUN mkdir /var/www/as/vendor &&\
chmod 777 /var/www/as/storage &&\
chmod 777 /var/www/as/public &&\
chmod 777 /var/www/as/vendor
# Syncthing directory create
# RUN mkdir -p /var/syncthing/config && chown -R www-data:www-data /var/syncthing
USER www-data
# Install all PHP dependencies
RUN composer install --no-interaction
USER root
COPY docker-entrypoint.sh /usr/local/bin/
RUN ["chmod", "+x", "/usr/local/bin/docker-entrypoint.sh"]
COPY supervisord.conf /etc/supervisord.conf
COPY schedule.sh /usr/local/bin/schedule.sh
RUN ["chmod", "+x", "/usr/local/bin/schedule.sh"]
ENTRYPOINT ["/usr/local/bin/docker-entrypoint.sh"]
EXPOSE 9000
CMD ["/usr/bin/supervisord", "-n", "-c", "/etc/supervisord.conf"]