|
|
@@ -0,0 +1,37 @@
|
|
|
+{
|
|
|
+ lib,
|
|
|
+ dockerTools,
|
|
|
+ buildEnv,
|
|
|
+ llama-cpp,
|
|
|
+ interactive ? true,
|
|
|
+ coreutils,
|
|
|
+}:
|
|
|
+
|
|
|
+# A tar that can be fed into `docker load`:
|
|
|
+#
|
|
|
+# $ nix build .#llamaPackages.docker
|
|
|
+# $ docker load < result
|
|
|
+
|
|
|
+# For details and variations cf.
|
|
|
+# - https://nixos.org/manual/nixpkgs/unstable/#ssec-pkgs-dockerTools-buildLayeredImage
|
|
|
+# - https://discourse.nixos.org/t/a-faster-dockertools-buildimage-prototype/16922
|
|
|
+# - https://nixery.dev/
|
|
|
+
|
|
|
+# Approximate (compressed) sizes, at the time of writing, are:
|
|
|
+#
|
|
|
+# .#llamaPackages.docker: 125M;
|
|
|
+# .#llamaPackagesCuda.docker: 537M;
|
|
|
+# .#legacyPackages.aarch64-linux.llamaPackagesXavier.docker: 415M.
|
|
|
+
|
|
|
+dockerTools.buildLayeredImage {
|
|
|
+ name = llama-cpp.pname;
|
|
|
+ tag = "latest";
|
|
|
+
|
|
|
+ contents =
|
|
|
+ [ llama-cpp ]
|
|
|
+ ++ lib.optionals interactive [
|
|
|
+ coreutils
|
|
|
+ dockerTools.binSh
|
|
|
+ dockerTools.caCertificates
|
|
|
+ ];
|
|
|
+}
|