1{
2 lib,
3 dockerTools,
4 buildEnv,
5 llama-cpp,
6 interactive ? true,
7 coreutils,
8}:
9
10# A tar that can be fed into `docker load`:
11#
12# $ nix build .#llamaPackages.docker
13# $ docker load < result
14
15# For details and variations cf.
16# - https://nixos.org/manual/nixpkgs/unstable/#ssec-pkgs-dockerTools-buildLayeredImage
17# - https://discourse.nixos.org/t/a-faster-dockertools-buildimage-prototype/16922
18# - https://nixery.dev/
19
20# Approximate (compressed) sizes, at the time of writing, are:
21#
22# .#llamaPackages.docker: 125M;
23# .#llamaPackagesCuda.docker: 537M;
24# .#legacyPackages.aarch64-linux.llamaPackagesXavier.docker: 415M.
25
26dockerTools.buildLayeredImage {
27 name = llama-cpp.pname;
28 tag = "latest";
29
30 contents =
31 [ llama-cpp ]
32 ++ lib.optionals interactive [
33 coreutils
34 dockerTools.binSh
35 dockerTools.caCertificates
36 ];
37}