2024-02-16 16:21:18 +01:00
|
|
|
# syntax=docker/dockerfile:latest
|
2022-02-11 15:47:49 +01:00
|
|
|
# Docker CLI is a requirement
|
2025-10-09 04:22:30 +00:00
|
|
|
FROM docker:28.5.1-cli AS docker
|
2022-02-11 15:47:49 +01:00
|
|
|
|
2022-03-14 16:25:47 +01:00
|
|
|
# Caddy is a requirement
|
2025-08-28 05:49:58 +00:00
|
|
|
FROM caddy:2.10.2-alpine AS caddy
|
2022-03-14 16:25:47 +01:00
|
|
|
|
2025-07-17 11:57:35 +02:00
|
|
|
# From https://github.com/docker-library/php/blob/master/8.4/alpine3.22/fpm/Dockerfile
|
2025-09-26 04:23:15 +00:00
|
|
|
FROM php:8.4.13-fpm-alpine3.22
|
2023-01-27 21:36:53 +01:00
|
|
|
|
2021-11-30 11:20:42 +01:00
|
|
|
EXPOSE 80
|
2021-12-03 12:14:39 +01:00
|
|
|
EXPOSE 8080
|
2021-11-30 11:20:42 +01:00
|
|
|
EXPOSE 8443
|
|
|
|
|
|
2023-05-03 16:31:32 +02:00
|
|
|
COPY --from=caddy /usr/bin/caddy /usr/bin/caddy
|
|
|
|
|
COPY --from=docker /usr/local/bin/docker /usr/local/bin/docker
|
2021-11-30 11:20:42 +01:00
|
|
|
|
2025-08-22 04:47:29 -07:00
|
|
|
COPY community-containers /var/www/docker-aio/community-containers
|
|
|
|
|
COPY php /var/www/docker-aio/php
|
|
|
|
|
COPY --chmod=775 Containers/mastercontainer/*.sh /
|
2025-10-17 21:01:58 +02:00
|
|
|
COPY --chmod=664 Containers/mastercontainer/*.Caddyfile /
|
2025-08-22 04:47:29 -07:00
|
|
|
COPY --chmod=664 Containers/mastercontainer/supervisord.conf /supervisord.conf
|
|
|
|
|
|
2021-11-30 11:20:42 +01:00
|
|
|
WORKDIR /var/www/docker-aio
|
|
|
|
|
|
2023-08-23 16:06:17 +02:00
|
|
|
# hadolint ignore=SC2086,DL3047,DL3003,DL3004
|
2023-01-27 21:36:53 +01:00
|
|
|
RUN set -ex; \
|
2024-04-17 17:52:42 +02:00
|
|
|
apk upgrade --no-cache -a; \
|
2023-05-03 16:31:32 +02:00
|
|
|
apk add --no-cache shadow; \
|
|
|
|
|
groupmod -g 33 www-data; \
|
|
|
|
|
usermod -u 33 -g 33 www-data; \
|
|
|
|
|
\
|
2023-01-27 21:36:53 +01:00
|
|
|
apk add --no-cache \
|
2023-02-20 10:47:11 +01:00
|
|
|
util-linux-misc \
|
2023-01-27 21:36:53 +01:00
|
|
|
ca-certificates \
|
|
|
|
|
bash \
|
2021-11-30 11:20:42 +01:00
|
|
|
supervisor \
|
|
|
|
|
sudo \
|
2023-01-27 21:36:53 +01:00
|
|
|
netcat-openbsd \
|
2023-01-27 21:52:37 +01:00
|
|
|
curl \
|
2023-05-03 16:31:32 +02:00
|
|
|
grep; \
|
|
|
|
|
\
|
2023-01-27 21:36:53 +01:00
|
|
|
apk add --no-cache --virtual .build-deps \
|
|
|
|
|
autoconf \
|
|
|
|
|
build-base; \
|
2025-09-04 12:16:12 +00:00
|
|
|
pecl install APCu-5.1.27; \
|
2023-01-27 21:36:53 +01:00
|
|
|
docker-php-ext-enable apcu; \
|
|
|
|
|
rm -r /tmp/pear; \
|
|
|
|
|
runDeps="$( \
|
|
|
|
|
scanelf --needed --nobanner --format '%n#p' --recursive /usr/local/lib/php/extensions \
|
|
|
|
|
| tr ',' '\n' \
|
|
|
|
|
| sort -u \
|
|
|
|
|
| awk 'system("[ -e /usr/local/lib/" $1 " ]") == 0 { next } { print "so:" $1 }' \
|
|
|
|
|
)"; \
|
2023-08-23 16:06:17 +02:00
|
|
|
apk add --no-cache --virtual .nextcloud-aio-rundeps $runDeps; \
|
2023-01-27 21:36:53 +01:00
|
|
|
apk del .build-deps; \
|
2023-02-10 13:42:03 +01:00
|
|
|
grep -q '^pm = dynamic' /usr/local/etc/php-fpm.d/www.conf; \
|
|
|
|
|
sed -i 's/^pm = dynamic/pm = ondemand/' /usr/local/etc/php-fpm.d/www.conf; \
|
|
|
|
|
sed -i 's/^pm.max_children =.*/pm.max_children = 80/' /usr/local/etc/php-fpm.d/www.conf; \
|
2023-05-03 16:31:32 +02:00
|
|
|
sed -i 's|access.log = /proc/self/fd/2|access.log = /proc/self/fd/1|' /usr/local/etc/php-fpm.d/docker.conf; \
|
2025-10-17 21:01:58 +02:00
|
|
|
grep -q 'listen =' /usr/local/etc/php-fpm.d/www.conf; \
|
|
|
|
|
sed -i 's|listen =.*|;listen = /run/php.sock # handled in zz-docker.conf|' /usr/local/etc/php-fpm.d/www.conf; \
|
|
|
|
|
grep -q 'listen =' /usr/local/etc/php-fpm.d/zz-docker.conf; \
|
|
|
|
|
sed -i 's|listen =.*|listen = /run/php.sock|' /usr/local/etc/php-fpm.d/zz-docker.conf; \
|
2023-05-03 16:31:32 +02:00
|
|
|
\
|
2023-01-27 21:36:53 +01:00
|
|
|
apk add --no-cache git; \
|
2025-10-17 21:01:58 +02:00
|
|
|
curl https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer; \
|
2023-01-27 21:36:53 +01:00
|
|
|
chmod +x /usr/local/bin/composer; \
|
2022-01-10 11:31:44 +01:00
|
|
|
cd /var/www/docker-aio; \
|
2025-03-20 12:45:05 +01:00
|
|
|
rm -r ./php/tests; \
|
2023-05-01 23:31:20 +02:00
|
|
|
chown www-data:www-data -R /var/www/docker-aio; \
|
2022-01-10 11:31:44 +01:00
|
|
|
cd php; \
|
2023-05-01 23:31:20 +02:00
|
|
|
sudo -u www-data composer install --no-dev; \
|
2023-05-03 16:31:32 +02:00
|
|
|
sudo -u www-data composer clear-cache; \
|
2022-01-10 11:31:44 +01:00
|
|
|
cd ..; \
|
|
|
|
|
rm -f /usr/local/bin/composer; \
|
2023-05-03 16:31:32 +02:00
|
|
|
chmod -R 770 /var/www/docker-aio; \
|
|
|
|
|
chown -R www-data:www-data /var/www; \
|
|
|
|
|
rm -r php/data; \
|
|
|
|
|
rm -r php/session; \
|
|
|
|
|
\
|
|
|
|
|
mkdir /var/log/supervisord; \
|
2021-12-03 12:14:39 +01:00
|
|
|
mkdir /var/run/supervisord;
|
2021-11-30 11:20:42 +01:00
|
|
|
|
2025-05-19 14:31:29 +02:00
|
|
|
LABEL org.label-schema.vendor="Nextcloud"
|
|
|
|
|
|
2023-08-23 16:06:17 +02:00
|
|
|
# hadolint ignore=DL3002
|
2021-12-03 12:14:39 +01:00
|
|
|
USER root
|
2021-11-30 11:20:42 +01:00
|
|
|
|
2023-05-12 17:58:47 +02:00
|
|
|
ENTRYPOINT ["/start.sh"]
|
2022-08-25 15:06:23 +02:00
|
|
|
|
2023-01-27 21:36:53 +01:00
|
|
|
HEALTHCHECK CMD /healthcheck.sh
|