2024-08-15 23:35:11 -04:00
|
|
|
{ pkgs, ... }:
|
|
|
|
let
|
|
|
|
nextcloud-apache = pkgs.dockerTools.pullImage {
|
|
|
|
imageName = "nextcloud";
|
2024-06-29 11:34:25 -04:00
|
|
|
imageDigest = "sha256:2ab0c5de2afd33c55721e69e87bd1667cad6c4550ba0fd0303cfeb7abb260750";
|
|
|
|
sha256 = "11fh4jaz1asiihf2092sh7ma9xm35hmnkafpbjr3igkv8jicsky1";
|
2024-08-15 23:35:11 -04:00
|
|
|
finalImageName = "nextcloud";
|
|
|
|
finalImageTag = "apache";
|
|
|
|
};
|
|
|
|
in
|
|
|
|
|
2024-06-29 11:34:25 -04:00
|
|
|
pkgs.dockerTools.buildImage {
|
2024-08-15 23:35:11 -04:00
|
|
|
name = "nextcloud-custom";
|
|
|
|
tag = "latest";
|
|
|
|
fromImage = nextcloud-apache;
|
|
|
|
runAsRoot = ''
|
|
|
|
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 \
|
|
|
|
;
|
|
|
|
'';
|
|
|
|
copyToRoot = ./supervisord.conf;
|
|
|
|
config = {
|
|
|
|
ENV = {
|
|
|
|
NEXTCLOUD_UPDATE = 1;
|
|
|
|
};
|
|
|
|
CMD = [
|
|
|
|
"/usr/bin/supervisord"
|
|
|
|
"-c"
|
|
|
|
"/supervisord.conf"
|
|
|
|
];
|
|
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
}
|
|
|
|
# build: nextcloud-dockerfiles/full/apache/
|