nixos-config/lib/builders/build-docker-image.nix
Gabriel Arazas 0de1441342
Some checks failed
Build devcontainers / build-devcontainers (push) Has been cancelled
Cache outputs / build-custom-packages (push) Has been cancelled
Check flake outputs / check-outputs (push) Has been cancelled
Publish every Git push to master to FlakeHub / flakehub-publish (push) Has been cancelled
Build personalized bootstrap ISO / build-iso (x86_64-linux) (push) Has been cancelled
Build project site / build (push) Has been cancelled
Build project site / deploy (push) Has been cancelled
Update flake inputs / update (push) Has been cancelled
lib/builders: fix Docker builder
2025-03-17 08:12:53 +08:00

37 lines
854 B
Nix

{ dockerTools, lib, foodogsquaredLib }:
{ name, contents ? [ ], pathsToLink ? [ ], enableTypicalSetup ? true, ... }@attrs:
let
attrs' = lib.removeAttrs attrs [ "contents" "pathsToLink" "enableTypicalSetup" "name" ];
in
dockerTools.buildImage (attrs' // {
name = "fds-${name}";
copyToRoot = foodogsquaredLib.buildFDSEnv {
inherit pathsToLink;
name = "fds-${name}-root";
paths =
contents
++ lib.optionals enableTypicalSetup (with dockerTools; [
usrBinEnv
binSh
caCertificates
fakeNss
]);
};
runAsRoot = ''
${lib.optionalString enableTypicalSetup ''
mkdir -p /data
''}
${attrs.runAsRoot or ""}
'';
config = (attrs.config or {}) // lib.optionalAttrs enableTypicalSetup {
Cmd = [ "/bin/bash" ];
WorkingDir = "/data";
Volumes."/data" = { };
};
})