chore: adds docker flake output and some utility commands
All checks were successful
gitea-physics/kalpa/pipeline/head This commit looks good

This commit is contained in:
Deepak Mallubhotla 2025-03-22 22:39:39 -05:00
parent c331bc057f
commit 4d2d865e9d
Signed by: deepak
GPG Key ID: 47831B15427F5A55
2 changed files with 66 additions and 8 deletions

View File

@ -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
'';
};
}
);
}

View File

@ -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