-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathDockerfile.prod
85 lines (69 loc) · 2.24 KB
/
Dockerfile.prod
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
# laravel composer dependencies
FROM composer:1.8.3 as application
LABEL maintainer "Felipe Reis - https://github.com/devfelipereis"
WORKDIR /app
COPY composer.json composer.lock /app/
RUN composer install \
--ignore-platform-reqs \
--no-ansi \
--no-autoloader \
--no-dev \
--no-interaction \
--no-scripts
COPY . /app/
RUN composer dump-autoload --optimize --classmap-authoritative
FROM nginx:1.14.2-alpine
ADD https://dl.bintray.com/php-alpine/key/php-alpine.rsa.pub /etc/apk/keys/php-alpine.rsa.pub
RUN echo "@php https://dl.bintray.com/php-alpine/v3.9/php-7.3" >> /etc/apk/repositories
RUN apk add --no-cache --update \
ca-certificates openssl \
php@php \
php-common@php \
php-ctype@php \
php-curl@php \
php-fpm@php \
php-gd@php \
php-intl@php \
php-json@php \
php-mbstring@php \
php-openssl@php \
php-pdo@php \
php-pdo_mysql@php \
php-mysqlnd@php \
php-xml@php \
php-zip@php \
php-redis@php \
php-memcached@php \
php-phar@php \
php-pcntl@php \
php-dom@php \
php-posix@php \
bash git grep dcron tzdata su-exec shadow \
supervisor
# Configure time
RUN echo "America/Sao_Paulo" > /etc/timezone && \
cp /usr/share/zoneinfo/America/Sao_Paulo /etc/localtime && \
apk del --no-cache tzdata && \
rm -rf /var/cache/apk/* && \
rm -rf /tmp/*
# CRON SETUP
COPY docker/cron/crontab /var/spool/cron/crontabs/root
RUN chmod -R 0644 /var/spool/cron/crontabs
RUN mkdir -p /var/www/html && \
mkdir -p /var/cache/nginx && \
mkdir -p /var/lib/nginx && \
chown -R nginx:nginx /var/cache/nginx /var/lib/nginx && \
chmod -R g+rw /var/cache/nginx /var/lib/nginx /etc/php7/php-fpm.d && \
ln -s /usr/bin/php7 /usr/bin/php
COPY docker/conf/php-fpm-pool.conf /etc/php7/php-fpm.d/www.conf
COPY docker/conf/supervisord.conf /etc/supervisor/supervisord.conf
COPY docker/conf/nginx.conf /etc/nginx/nginx.conf
COPY docker/conf/nginx-site.prod.conf /etc/nginx/conf.d/default.conf
# COPY docker/conf/php.ini /etc/php7/conf.d/50-settings.ini
COPY docker/entrypoint.prod.sh /sbin/entrypoint.sh
WORKDIR /var/www/html/
COPY --chown=nginx:nginx --from=application /app .
VOLUME /var/www/html/storage
EXPOSE 8000
ENTRYPOINT ["/sbin/entrypoint.sh"]
CMD ["true"]