From 623c8c40fb43d73cf0ad350225b9872c26bdcea4 Mon Sep 17 00:00:00 2001 From: Greg Hendrickson Date: Tue, 24 Oct 2023 13:58:48 -0700 Subject: [PATCH 1/4] docker file + lowercase filename --- {Deluge => deluge}/docker-compose-deluge.yml | 0 web-apps/dockerfile | 60 ++++++++++++++++++++ 2 files changed, 60 insertions(+) rename {Deluge => deluge}/docker-compose-deluge.yml (100%) create mode 100644 web-apps/dockerfile diff --git a/Deluge/docker-compose-deluge.yml b/deluge/docker-compose-deluge.yml similarity index 100% rename from Deluge/docker-compose-deluge.yml rename to deluge/docker-compose-deluge.yml diff --git a/web-apps/dockerfile b/web-apps/dockerfile new file mode 100644 index 0000000..115cac5 --- /dev/null +++ b/web-apps/dockerfile @@ -0,0 +1,60 @@ +FROM nextcloud:apache + +RUN set -ex; \ + \ + apt-get update; \ + apt-get install -y --no-install-recommends \ + ffmpeg \ + ghostscript \ + libmagickcore-6.q16-6-extra \ + procps \ + smbclient \ + supervisor \ +# libreoffice \ + ; \ + rm -rf /var/lib/apt/lists/* + +RUN set -ex; \ + \ + savedAptMark="$(apt-mark showmanual)"; \ + \ + apt-get update; \ + apt-get install -y --no-install-recommends \ + libbz2-dev \ + libc-client-dev \ + libkrb5-dev \ + libsmbclient-dev \ + ; \ + \ + docker-php-ext-configure imap --with-kerberos --with-imap-ssl; \ + docker-php-ext-install \ + bz2 \ + imap \ + ; \ + pecl install smbclient; \ + docker-php-ext-enable smbclient; \ + \ +# reset apt-mark's "manual" list so that "purge --auto-remove" will remove all build dependencies + apt-mark auto '.*' > /dev/null; \ + apt-mark manual $savedAptMark; \ + ldd "$(php -r 'echo ini_get("extension_dir");')"/*.so \ + | awk '/=>/ { so = $(NF-1); if (index(so, "/usr/local/") == 1) { next }; gsub("^/(usr/)?", "", so); print so }' \ + | sort -u \ + | xargs -r dpkg-query --search \ + | cut -d: -f1 \ + | sort -u \ + | xargs -rt apt-mark manual; \ + \ + apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \ + rm -rf /var/lib/apt/lists/* + +RUN mkdir -p \ + /var/log/supervisord \ + /var/run/supervisord \ +; + +COPY supervisord.conf / + +ENV NEXTCLOUD_UPDATE=1 + +CMD ["/usr/bin/supervisord", "-c", "/supervisord.conf"] \ No newline at end of file From 60f971fddd97370c212b671291a1e890ed2ef339 Mon Sep 17 00:00:00 2001 From: Greg Hendrickson Date: Tue, 24 Oct 2023 14:08:02 -0700 Subject: [PATCH 2/4] supervisord --- web-apps/docker-compose.yml | 6 +++++- web-apps/supervisord.conf | 22 ++++++++++++++++++++++ 2 files changed, 27 insertions(+), 1 deletion(-) create mode 100644 web-apps/supervisord.conf diff --git a/web-apps/docker-compose.yml b/web-apps/docker-compose.yml index 85f110e..11950ac 100644 --- a/web-apps/docker-compose.yml +++ b/web-apps/docker-compose.yml @@ -49,7 +49,11 @@ services: # Nextcloud service nextcloud: - image: nextcloud:latest + build: + context: . + dockerfile: Dockerfile + image: my-nextcloud-image + # image: nextcloud:latest restart: always hostname: nextcloud # Set hostname for Nextcloud container environment: diff --git a/web-apps/supervisord.conf b/web-apps/supervisord.conf new file mode 100644 index 0000000..40757b2 --- /dev/null +++ b/web-apps/supervisord.conf @@ -0,0 +1,22 @@ +[supervisord] +nodaemon=true +logfile=/var/log/supervisord/supervisord.log +pidfile=/var/run/supervisord/supervisord.pid +childlogdir=/var/log/supervisord/ +logfile_maxbytes=50MB ; maximum size of logfile before rotation +logfile_backups=10 ; number of backed up logfiles +loglevel=error + +[program:apache2] +stdout_logfile=/dev/stdout +stdout_logfile_maxbytes=0 +stderr_logfile=/dev/stderr +stderr_logfile_maxbytes=0 +command=apache2-foreground + +[program:cron] +stdout_logfile=/dev/stdout +stdout_logfile_maxbytes=0 +stderr_logfile=/dev/stderr +stderr_logfile_maxbytes=0 +command=/cron.sh \ No newline at end of file From 3944860f7c736210cdf2d20f05238ee500489dad Mon Sep 17 00:00:00 2001 From: Greg Hendrickson Date: Tue, 24 Oct 2023 15:39:12 -0700 Subject: [PATCH 3/4] build --- web-apps/docker-compose.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/web-apps/docker-compose.yml b/web-apps/docker-compose.yml index 11950ac..318fdcc 100644 --- a/web-apps/docker-compose.yml +++ b/web-apps/docker-compose.yml @@ -52,7 +52,7 @@ services: build: context: . dockerfile: Dockerfile - image: my-nextcloud-image + image: nextcloud-full:latest # image: nextcloud:latest restart: always hostname: nextcloud # Set hostname for Nextcloud container From d8a8d3bbda614f4a42e1cd26362ca392394fb31f Mon Sep 17 00:00:00 2001 From: Greg Hendrickson Date: Tue, 24 Oct 2023 15:55:18 -0700 Subject: [PATCH 4/4] fpm-alpine --- web-apps/dockerfile | 49 ++++++++++++++++----------------------- web-apps/supervisord.conf | 4 ++-- 2 files changed, 22 insertions(+), 31 deletions(-) diff --git a/web-apps/dockerfile b/web-apps/dockerfile index 115cac5..befdc18 100644 --- a/web-apps/dockerfile +++ b/web-apps/dockerfile @@ -1,29 +1,25 @@ -FROM nextcloud:apache +FROM nextcloud:fpm-alpine RUN set -ex; \ \ - apt-get update; \ - apt-get install -y --no-install-recommends \ + apk add --no-cache \ ffmpeg \ - ghostscript \ - libmagickcore-6.q16-6-extra \ + imagemagick \ procps \ - smbclient \ + samba-client \ supervisor \ # libreoffice \ - ; \ - rm -rf /var/lib/apt/lists/* + ; RUN set -ex; \ \ - savedAptMark="$(apt-mark showmanual)"; \ - \ - apt-get update; \ - apt-get install -y --no-install-recommends \ - libbz2-dev \ - libc-client-dev \ - libkrb5-dev \ - libsmbclient-dev \ + apk add --no-cache --virtual .build-deps \ + $PHPIZE_DEPS \ + imap-dev \ + krb5-dev \ + openssl-dev \ + samba-dev \ + bzip2-dev \ ; \ \ docker-php-ext-configure imap --with-kerberos --with-imap-ssl; \ @@ -34,19 +30,14 @@ RUN set -ex; \ pecl install smbclient; \ docker-php-ext-enable smbclient; \ \ -# reset apt-mark's "manual" list so that "purge --auto-remove" will remove all build dependencies - apt-mark auto '.*' > /dev/null; \ - apt-mark manual $savedAptMark; \ - ldd "$(php -r 'echo ini_get("extension_dir");')"/*.so \ - | awk '/=>/ { so = $(NF-1); if (index(so, "/usr/local/") == 1) { next }; gsub("^/(usr/)?", "", so); print so }' \ - | sort -u \ - | xargs -r dpkg-query --search \ - | cut -d: -f1 \ - | sort -u \ - | xargs -rt apt-mark manual; \ - \ - apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \ - rm -rf /var/lib/apt/lists/* + 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 }' \ + )"; \ + apk add --virtual .nextcloud-phpext-rundeps $runDeps; \ + apk del .build-deps RUN mkdir -p \ /var/log/supervisord \ diff --git a/web-apps/supervisord.conf b/web-apps/supervisord.conf index 40757b2..088d5dc 100644 --- a/web-apps/supervisord.conf +++ b/web-apps/supervisord.conf @@ -7,12 +7,12 @@ logfile_maxbytes=50MB ; maximum size of logfile before logfile_backups=10 ; number of backed up logfiles loglevel=error -[program:apache2] +[program:php-fpm] stdout_logfile=/dev/stdout stdout_logfile_maxbytes=0 stderr_logfile=/dev/stderr stderr_logfile_maxbytes=0 -command=apache2-foreground +command=php-fpm [program:cron] stdout_logfile=/dev/stdout