buildimage

This commit is contained in:
ahuston-0 2024-07-07 12:25:31 -04:00
parent 8360e05aa0
commit 5987257fa4
No known key found for this signature in database
GPG Key ID: 1FACF4075E3212F7
2 changed files with 25 additions and 20 deletions

View File

@ -63,6 +63,7 @@
nfs.server.enable = true; nfs.server.enable = true;
openssh.ports = [ 666 ]; openssh.ports = [ 666 ];
smartd.enable = true; smartd.enable = true;
calibre-server.enable = true;
postgresql = { postgresql = {
enable = true; enable = true;

View File

@ -3,23 +3,27 @@ let
nextcloud-apache = pkgs.dockerTools.pullImage (import ./nextcloud-apache.nix); nextcloud-apache = pkgs.dockerTools.pullImage (import ./nextcloud-apache.nix);
in in
pkgs.dockerTools.buildLayeredImage { pkgs.dockerTools.buildImage {
name = "nextcloud-custom"; name = "nextcloud-custom";
tag = "latest"; tag = "latest";
fromImage = nextcloud-apache; fromImage = nextcloud-apache;
# diskSize=4096; diskSize = 8192;
# buildVMMemorySize=2048; buildVMMemorySize = 8192;
compressor = "zstd"; compressor = "zstd";
contents = ./.; # contents = ./.;
# copyToRoot = pkgs.buildEnv {
# name="supervisord";
# paths = [./.];
# pathsToLink = [ "./supervisord.conf" ];
enableFakechroot = true; # };
fakeRootCommands = ''
#!${pkgs.runtimeShell}
# enableFakechroot = true;
runAsRoot = ''
set -ex; \ set -ex; \
\ \
apt-get update; \ /usr/bin/apt-get update; \
apt-get install -y --no-install-recommends \ /usr/bin/apt-get install -y --no-install-recommends \
ffmpeg \ ffmpeg \
ghostscript \ ghostscript \
libmagickcore-6.q16-6-extra \ libmagickcore-6.q16-6-extra \
@ -34,26 +38,26 @@ pkgs.dockerTools.buildLayeredImage {
\ \
savedAptMark="$(apt-mark showmanual)"; \ savedAptMark="$(apt-mark showmanual)"; \
\ \
apt-get update; \ /usr/bin/apt-get update; \
apt-get install -y --no-install-recommends \ /usr/bin/apt-get install -y --no-install-recommends \
libbz2-dev \ libbz2-dev \
libc-client-dev \ libc-client-dev \
libkrb5-dev \ libkrb5-dev \
libsmbclient-dev \ libsmbclient-dev \
; \ ; \
\ \
docker-php-ext-configure imap --with-kerberos --with-imap-ssl; \ /usr/local/bin/docker-php-ext-configure imap --with-kerberos --with-imap-ssl; \
docker-php-ext-install \ /usr/local/bin/docker-php-ext-install \
bz2 \ bz2 \
imap \ imap \
; \ ; \
pecl install smbclient; \ /usr/local/bin/pecl install smbclient; \
docker-php-ext-enable smbclient; \ /usr/local/bin/docker-php-ext-enable smbclient; \
\ \
# reset apt-mark's "manual" list so that "purge --auto-remove" will remove all build dependencies # reset apt-mark's "manual" list so that "purge --auto-remove" will remove all build dependencies
apt-mark auto '.*' > /dev/null; \ /usr/bin/apt-mark auto '.*' > /dev/null; \
apt-mark manual $savedAptMark; \ /usr/bin/apt-mark manual $savedAptMark; \
ldd "$(php -r 'echo ini_get("extension_dir");')"/*.so \ /usr/bin/ldd "$(/usr/local/bin/php -r 'echo ini_get("extension_dir");')"/*.so \
| awk '/=>/ { so = $(NF-1); if (index(so, "/usr/local/") == 1) { next }; gsub("^/(usr/)?", "", so); print so }' \ | awk '/=>/ { so = $(NF-1); if (index(so, "/usr/local/") == 1) { next }; gsub("^/(usr/)?", "", so); print so }' \
| sort -u \ | sort -u \
| xargs -r dpkg-query --search \ | xargs -r dpkg-query --search \
@ -61,7 +65,7 @@ pkgs.dockerTools.buildLayeredImage {
| sort -u \ | sort -u \
| xargs -rt apt-mark manual; \ | xargs -rt apt-mark manual; \
\ \
apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \ /usr/bin/apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \
rm -rf /var/lib/apt/lists/* rm -rf /var/lib/apt/lists/*
mkdir -p \ mkdir -p \
@ -76,7 +80,7 @@ pkgs.dockerTools.buildLayeredImage {
CMD = [ CMD = [
"/usr/bin/supervisord" "/usr/bin/supervisord"
"-c" "-c"
./supervisord.conf # ./supervisord.conf
]; ];
}; };