102 lines
2.0 KiB
Nix
102 lines
2.0 KiB
Nix
{
|
|
env,
|
|
pkgs,
|
|
version,
|
|
atlantis,
|
|
atlantis-client,
|
|
sorcerer,
|
|
archivist,
|
|
codex,
|
|
}:
|
|
let
|
|
# Entrypoints
|
|
startArchivist = pkgs.writeScriptBin "entrypoint" ''
|
|
#!${pkgs.runtimeShell}
|
|
set -euo pipefail
|
|
exec archivist "$@"
|
|
'';
|
|
in
|
|
{
|
|
atlantis = pkgs.dockerTools.buildLayeredImage {
|
|
name = "Atlantis";
|
|
tag = version;
|
|
created = "now";
|
|
contents = [
|
|
atlantis
|
|
pkgs.dockerTools.caCertificates
|
|
]
|
|
++ pkgs.lib.optionals (env == "Debug") [
|
|
pkgs.busybox
|
|
pkgs.dockerTools.binSh
|
|
];
|
|
|
|
extraCommands = ''
|
|
mkdir -m 0777 tmp
|
|
mkdir -p ./app
|
|
cp -r ${atlantis}/lib/Atlantis/* ./app/
|
|
cp -r ${atlantis-client}/public ./app/
|
|
'';
|
|
|
|
config = {
|
|
cmd = [ "Server" ];
|
|
workingDir = "/app";
|
|
env = [
|
|
"SERVER_CONTENT_ROOT=/app/public"
|
|
];
|
|
};
|
|
};
|
|
|
|
sorcerer = pkgs.dockerTools.buildLayeredImage {
|
|
name = "Sorcerer";
|
|
tag = version;
|
|
created = "now";
|
|
contents = [
|
|
sorcerer
|
|
pkgs.dockerTools.caCertificates
|
|
]
|
|
++ pkgs.lib.optionals (env == "Debug") [
|
|
pkgs.busybox
|
|
pkgs.dockerTools.binSh
|
|
];
|
|
extraCommands = ''
|
|
mkdir -p ./app
|
|
cp -r ${sorcerer}/lib/Sorcerer/* ./app/
|
|
'';
|
|
config = {
|
|
cmd = [ "Sorcerer" ];
|
|
workingDir = "/app";
|
|
};
|
|
};
|
|
|
|
archivist = pkgs.dockerTools.buildLayeredImage {
|
|
name = "archivist";
|
|
tag = archivist.version;
|
|
created = "now";
|
|
|
|
contents = [
|
|
archivist
|
|
]
|
|
++ pkgs.lib.optionals (env == "Debug") [
|
|
pkgs.busybox
|
|
pkgs.dockerTools.binSh
|
|
];
|
|
|
|
compressor = "none";
|
|
|
|
extraCommands = ''
|
|
mkdir -p ./app
|
|
cp -r ${archivist}/lib/Archivist/* ./app/
|
|
'';
|
|
|
|
config = {
|
|
entrypoint = [ "${startArchivist}/bin/entrypoint" ];
|
|
workingDir = "/app";
|
|
env = [
|
|
"ARCHMAESTER_URL=https://maps.oceanbox.io"
|
|
"ARCHMAESTER_AUTH=admin:en-to-tre-fire"
|
|
];
|
|
};
|
|
};
|
|
|
|
codex = pkgs.callPackage ../src/Codex/container.nix { server = codex; };
|
|
} |