about summary refs log tree commit diff
path: root/docker.nix
diff options
context:
space:
mode:
Diffstat (limited to 'docker.nix')
-rw-r--r--docker.nix43
1 files changed, 43 insertions, 0 deletions
diff --git a/docker.nix b/docker.nix
new file mode 100644
index 0000000..2ac09b6
--- /dev/null
+++ b/docker.nix
@@ -0,0 +1,43 @@
+{ kittybox, dockerTools, runtimeShell, rev ? "development", lastModifiedDate }:
+dockerTools.buildImage {
+  name = "kittybox";
+  tag = rev;
+  created = let
+    date = lastModifiedDate;
+  in builtins.concatStringsSep "" [
+    (builtins.substring 0 4 date)
+    "-"
+    (builtins.substring 4 2 date)
+    "-"
+    (builtins.substring 6 2 date)
+    "T"
+    (builtins.substring 8 2 date)
+    ":"
+    (builtins.substring 10 2 date)
+    ":"
+    (builtins.substring 12 2 date)
+    "Z"
+  ];
+
+  runAsRoot = ''
+    #!${runtimeShell}
+    ${dockerTools.shadowSetup}
+    groupadd -r kittybox
+    useradd -r -g kittybox kittybox
+    mkdir -p /data
+    chown kittybox:kittybox /data
+  '';
+
+  config = {
+    Cmd = [ "${kittybox}/bin/kittybox" ];
+    Env = [
+      "SERVE_AT=0.0.0.0:8080"
+      "BACKEND_URI=file:///data"
+      "RUST_LOG=info"
+    ];
+    WorkingDir = "/data";
+    Volumes = { "/data" = {}; };
+    User = "kittybox";
+    ExposedPorts = { "8080" = {}; };
+  };
+}