70 lines
1.4 KiB
Nix
70 lines
1.4 KiB
Nix
let
|
|
drv = {
|
|
buildEnv,
|
|
dockerTools,
|
|
fakeNss,
|
|
nginx,
|
|
runCommand,
|
|
wordle-solver-web,
|
|
writeShellScriptBin,
|
|
...
|
|
}:
|
|
dockerTools.buildImage {
|
|
name = "wordle-solver-web";
|
|
created = "now";
|
|
copyToRoot = buildEnv {
|
|
name = "image-root";
|
|
paths = [
|
|
nginx
|
|
(fakeNss.override {
|
|
extraGroupLines = [
|
|
"nogroup:x:65534:"
|
|
];
|
|
})
|
|
(writeShellScriptBin "start" ''
|
|
echo "Start serving worlde-solver at port 80..."
|
|
/bin/nginx -c /etc/nginx.conf
|
|
'')
|
|
(runCommand "nginx-conf" {} ''
|
|
mkdir -p $out/etc
|
|
|
|
cat <<EOF > $out/etc/nginx.conf
|
|
events {}
|
|
|
|
error_log /dev/stderr;
|
|
|
|
http {
|
|
include ${nginx}/conf/mime.types;
|
|
|
|
server {
|
|
listen 80;
|
|
root ${wordle-solver-web};
|
|
access_log /dev/stdout;
|
|
}
|
|
}
|
|
|
|
daemon off;
|
|
EOF
|
|
'')
|
|
];
|
|
pathsToLink = ["/bin" "/etc"];
|
|
};
|
|
runAsRoot = ''
|
|
mkdir -p /var/log/nginx
|
|
'';
|
|
config = {
|
|
Cmd = ["/bin/start"];
|
|
};
|
|
};
|
|
in {
|
|
perSystem = {
|
|
pkgs,
|
|
self',
|
|
...
|
|
}: {
|
|
packages.wordle-solver-web-docker = pkgs.callPackage drv {
|
|
inherit (self'.packages) wordle-solver-web;
|
|
};
|
|
};
|
|
}
|