docker.nix 850 B

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