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