85 lines
2.3 KiB
Nix
Raw Normal View History

{ pkgs, ... }:
let
nextcloud-apache = pkgs.dockerTools.pullImage {
imageName = "nextcloud";
imageDigest = "sha256:2ab0c5de2afd33c55721e69e87bd1667cad6c4550ba0fd0303cfeb7abb260750";
sha256 = "11fh4jaz1asiihf2092sh7ma9xm35hmnkafpbjr3igkv8jicsky1";
finalImageName = "nextcloud";
finalImageTag = "apache";
};
in
pkgs.dockerTools.buildImage {
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/