docker.nix
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 26 dockerTools.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 }