-
Notifications
You must be signed in to change notification settings - Fork 2
/
Dockerfile
128 lines (101 loc) · 3.08 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
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
FROM golang:latest AS builder
RUN go install github.com/caddyserver/xcaddy/cmd/xcaddy@latest && \
mkdir /build && cd /build && \
xcaddy build \
--with github.com/abiosoft/caddy-exec
FROM alpine:latest as caddy
ARG USER="docker"
ARG USERID="1000"
ARG GROUP="docker"
ARG GROUPID="1000"
# Install Caddy
COPY --from=builder /build/caddy /usr/bin/caddy
RUN apk --no-cache add ca-certificates mailcap && \
addgroup -g $GROUPID $GROUP && \
adduser -u $USERID -G $GROUP -h /home/$USER -s /bin/sh -D $USER && \
chmod 755 /usr/bin/caddy
USER docker:docker
FROM php:8.0-fpm-alpine AS worker
LABEL vendor="Garagist"
LABEL maintainer="David Spiola"
ARG USER="docker"
ARG USERID="1000"
ARG GROUP="docker"
ARG GROUPID="1000"
# Copy configuration
COPY root /
# Docker USER
RUN addgroup -g $GROUPID $GROUP \
&& adduser -u $USERID -G $GROUP -h /home/$USER -s /bin/sh -D $USER
# Install fixuid
RUN /usr/local/sbin/install-fixuid.sh
# Custom PHP requirements
RUN set -x \
&& cat /etc/os-release \
&& mkdir -p /data \
&& apk --update add curl libcap git dcron libcap \
&& curl -sSLf -o /usr/local/bin/install-php-extensions \
https://github.com/mlocati/docker-php-extension-installer/releases/latest/download/install-php-extensions && \
chmod +x /usr/local/bin/install-php-extensions \
&& install-php-extensions \
gd \
gmp \
pdo_mysql \
pdo_pgsql \
opcache \
exif \
bcmath \
mcrypt \
zip \
bz2 \
pcntl \
sockets \
redis \
yaml \
uuid \
vips \
msgpack \
protobuf \
imap \
intl \
&& IPE_DONT_ENABLE=1 install-php-extensions xdebug \
&& rm -f /usr/local/bin/install-php-extensions
# Install Caddy
COPY --from=caddy /usr/bin/caddy /usr/bin/caddy
RUN setcap CAP_NET_BIND_SERVICE=+ep /usr/bin/caddy
# Configure PHP, allow_url_include is deprecated since PHP 7.4
RUN /usr/local/sbin/configure-php.sh && rm $PHP_INI_DIR/conf.d/allow_url_include.ini
#setup cron
RUN chown $USER:$GROUP /usr/sbin/crond \
&& setcap cap_setgid=ep /usr/sbin/crond
# Install composer
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/bin --filename=composer
# SET DEFAULT USER
RUN chmod +x /entrypoint.sh \
&& chmod +x /mode.sh \
&& mkdir -p /var/run/php-fpm/ \
&& mkdir -p /data \
&& mkdir -p /mautic \
&& mkdir -p /tmp/mautic \
&& chown $USER:$GROUP /var/run/php-fpm/ \
&& chown -R $USER:$GROUP /usr/local/docker-entrypoint.d/ \
&& chmod -R +x /usr/local/docker-entrypoint.d/ \
&& chown -R $USER:$GROUP /data \
&& chown -R $USER:$GROUP /mautic
USER $USER:$GROUP
# Define working directory
WORKDIR /data
ENV MAUTIC_SSL_ENABLED false
ENV MAUTIC_TLS_EMAIL none
# By default enable cron jobs
ENV MAUTIC_CRON_RUN_JOBS true
# By default install composer dependencies on startup
ENV MAUTIC_RUN_COMPOSER_INSTALL true
# By default apply database mirgrations on startup
ENV MAUTIC_RUN_MIGRATION true
# Expose ports
EXPOSE 80/tcp
EXPOSE 443/tcp
# Define entrypoint and command
ENTRYPOINT ["/mode.sh"]
CMD ["/entrypoint.sh"]