From 4d2d865e9df3918096bf9cf2873c05695fed1c02 Mon Sep 17 00:00:00 2001 From: Deepak Mallubhotla Date: Sat, 22 Mar 2025 22:39:39 -0500 Subject: [PATCH] chore: adds docker flake output and some utility commands --- flake.nix | 53 +++++++++++++++++++++++++++++++++++++++++++++-------- justfile | 21 +++++++++++++++++++++ 2 files changed, 66 insertions(+), 8 deletions(-) diff --git a/flake.nix b/flake.nix index bfff362..1d9ee39 100644 --- a/flake.nix +++ b/flake.nix @@ -13,30 +13,66 @@ let pkgs = nixpkgs.legacyPackages.${system}; poetry2nix = poetry2nixSrc.lib.mkPoetry2Nix { inherit pkgs; }; - kalpaApp = poetry2nix.mkPoetryApplication { + kalpaaApp = poetry2nix.mkPoetryApplication { projectDir = self; python = pkgs.python39; preferWheels = true; }; - kalpaEnv = poetry2nix.mkPoetryEnv { + kalpaaEnv = poetry2nix.mkPoetryEnv { projectDir = self; python = pkgs.python39; preferWheels = true; overrides = poetry2nix.overrides.withDefaults (self: super: { }); }; + kalpaa-docker-image = pkgs.dockerTools.buildLayeredImage { + name = "kalpaa"; + tag = "latest"; + + + contents = [ + + # some stuff that dockertools provides? + # pkgs.dockerTools.usrBinEnv + # pkgs.dockerTools.binSh + # pkgs.dockerTools.caCertificates + # pkgs.dockerTools.fakeNss + + pkgs.bash + pkgs.coreutils + # pkgs.cacert + # pkgs.gnutar + # pkgs.gzip + # pkgs.gnused + # pkgs.gnugrep + pkgs.uv + kalpaaApp + + ]; + + config = { + Cmd = [ "/bin/bash" ]; + Env = [ + "PATH=/bin" + ]; + WorkingDir = "/workspace"; + }; + }; in { packages = { - inherit kalpaEnv; - inherit kalpaApp; - default = self.packages.${system}.kalpaEnv; + inherit kalpaaEnv; + inherit kalpaaApp; + inherit kalpaa-docker-image; + default = self.packages.${system}.kalpaaEnv; }; + + devShells.default = pkgs.mkShell { - inputsFrom = [ self.packages.${system}.kalpaEnv ]; + inputsFrom = [ self.packages.${system}.kalpaaEnv ]; buildInputs = [ pkgs.poetry - self.packages.${system}.kalpaEnv - self.packages.${system}.kalpaApp + self.packages.${system}.kalpaaEnv + self.packages.${system}.kalpaaApp pkgs.just pkgs.nodejs ]; @@ -44,6 +80,7 @@ export DO_NIX_CUSTOM=1 ''; }; + } ); } diff --git a/justfile b/justfile index 177b364..e2be314 100755 --- a/justfile +++ b/justfile @@ -70,3 +70,24 @@ release version="": # htmlcov: # poetry run pytest --cov-report=html + +# build docker image +build-container: + #!/usr/bin/env bash + set -euxo pipefail + nix build .#kalpaa-docker-image + +# load the image into docker +load-container: + #!/usr/bin/env bash + set -euxo pipefail + docker load < result + +# build and load in one step +build-load-container: build-container load-container + echo "Image loaded successfully!" + +exec-container: + #!/usr/bin/env bash + set -euxo pipefail + docker run -it -v $(pwd)/kalpaa.toml:/workspace/kalpaa.toml -v $(pwd)/dots.json:/workspace/dots.json -v $(pwd)/indexes.json:/workspace/indexes.json kalpaa /bin/bash