Container build support
This commit is contained in:
26
flake.nix
26
flake.nix
@@ -5,6 +5,10 @@
|
||||
parts.url = "github:hercules-ci/flake-parts";
|
||||
};
|
||||
outputs = inputs@{ self, nixpkgs, parts, ... }:
|
||||
let
|
||||
packageName = "sampu";
|
||||
containerPackageName = "${packageName}-container";
|
||||
in
|
||||
parts.lib.mkFlake { inherit inputs; } {
|
||||
systems = nixpkgs.lib.systems.flakeExposed;
|
||||
imports = [ inputs.haskell-flake.flakeModule ];
|
||||
@@ -22,6 +26,28 @@
|
||||
};
|
||||
};
|
||||
|
||||
packages.${containerPackageName} = pkgs.dockerTools.buildImage {
|
||||
name = packageName;
|
||||
|
||||
copyToRoot = pkgs.buildEnv {
|
||||
name = "image-root";
|
||||
paths = [ (pkgs.haskell.lib.justStaticExecutables self'.packages.sampu) ];
|
||||
pathsToLink = [ "/bin" ];
|
||||
};
|
||||
tag = "latest";
|
||||
config = {
|
||||
Cmd = [
|
||||
"/bin/sampu"
|
||||
];
|
||||
WorkingDir = "/app";
|
||||
ExposedPorts = {
|
||||
"3000/tcp" = {};
|
||||
};
|
||||
extraCommands = ''
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
packages.default = self'.packages.sampu;
|
||||
};
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user