From 7f52f27085e020bab63b62b40d42399eb3e8045d Mon Sep 17 00:00:00 2001 From: Julian Mutter Date: Sat, 24 Jan 2026 19:43:26 +0100 Subject: [PATCH] Add docker deploy to flake --- flake.nix | 45 ++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 40 insertions(+), 5 deletions(-) diff --git a/flake.nix b/flake.nix index 820c4ee..4fd2c20 100644 --- a/flake.nix +++ b/flake.nix @@ -14,20 +14,55 @@ flake-utils.lib.eachDefaultSystem ( system: let pkgs = nixpkgs.legacyPackages.${system}; + + deploy = pkgs.writeShellScriptBin "deploy" '' + set -e; set -o pipefail; set -x; + + nix build .#docker + image=$((docker load < result) | sed -n '$s/^Loaded image: //p') + docker image tag "$image" harbor.julian-mutter.de/sheetless/sheetless-server:latest + docker push harbor.julian-mutter.de/sheetless/sheetless-server:latest + ''; in { devShells.default = pkgs.mkShell { buildInputs = with pkgs; [ go gopls go-tools + + deploy ]; }; - packages.default = pkgs.buildGoModule { - pname = "sheetless-server"; - version = "0.1.0"; - src = ./src; - vendorHash = "sha256-NnHo1wcsX0aCBpay8eEyjmtO7+Qe8gcBPITobP7WtkA="; + packages = rec { + default = sheetless-server; + + sheetless-server = pkgs.buildGoModule { + pname = "sheetless-server"; + version = "0.1.0"; + src = ./src; + vendorHash = "sha256-NnHo1wcsX0aCBpay8eEyjmtO7+Qe8gcBPITobP7WtkA="; + }; + + docker = pkgs.dockerTools.buildImage { + name = "sheetless-server"; + tag = "latest"; + + copyToRoot = with pkgs; [ + dockerTools.usrBinEnv + dockerTools.binSh + dockerTools.caCertificates + + coreutils + sheetless-server + ]; + + config = { + Cmd = ["/bin/sheetless-server"]; + Expose = "8080"; + }; + created = "now"; + }; }; } );