Add a flake.nix generating a docker image

This commit is contained in:
I-Al-Istannen 2024-05-06 18:40:50 +02:00
parent 8f9d304761
commit 5acf68fc3d
2 changed files with 101 additions and 0 deletions

48
flake.lock generated Normal file
View file

@ -0,0 +1,48 @@
{
"nodes": {
"naersk": {
"inputs": {
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1713520724,
"narHash": "sha256-CO8MmVDmqZX2FovL75pu5BvwhW+Vugc7Q6ze7Hj8heI=",
"owner": "nix-community",
"repo": "naersk",
"rev": "c5037590290c6c7dae2e42e7da1e247e54ed2d49",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "naersk",
"type": "github"
}
},
"nixpkgs": {
"locked": {
"lastModified": 1714906307,
"narHash": "sha256-UlRZtrCnhPFSJlDQE7M0eyhgvuuHBTe1eJ9N9AQlJQ0=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "25865a40d14b3f9cf19f19b924e2ab4069b09588",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"root": {
"inputs": {
"naersk": "naersk",
"nixpkgs": "nixpkgs"
}
}
},
"root": "root",
"version": 7
}

53
flake.nix Normal file
View file

@ -0,0 +1,53 @@
{
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
naersk = {
url = "github:nix-community/naersk";
inputs.nixpkgs.follows = "nixpkgs";
};
};
outputs = { self, nixpkgs, naersk }:
let
forAllSystems = nixpkgs.lib.genAttrs nixpkgs.lib.systems.flakeExposed;
in
rec {
packages = forAllSystems (system:
let
pkgs = import nixpkgs { inherit system; };
naersk' = pkgs.callPackage naersk { };
in
rec {
default = kit-timesheets;
kit-timesheets = naersk'.buildPackage {
root = ./.;
};
docker = pkgs.dockerTools.buildLayeredImage {
name = "garmelon/kit-timesheets";
tag = "latest";
contents = with pkgs; [
# Makes debugging the container a bit more pleasant
busybox
# Fontconfig is needed so typst will find fonts (renders a blank
# document otherwise)
fontconfig
];
config = {
Entrypoint = [ "${kit-timesheets}/bin/kit_timesheets" ];
WorkingDir = "/tmp";
Env = [
# Fontconfig needs to be babysitted a bit in containers
"FONTCONFIG_FILE=${pkgs.fontconfig.out}/etc/fonts/fonts.conf"
"FONTCONFIG_PATH=${pkgs.fontconfig.out}/etc/fonts/"
# Useful for read-only containers, as fontconfig will create a
# cache there
"HOME=/tmp"
];
};
};
}
);
};
}