2025-07-22 13:16:53 +02:00
|
|
|
{ pkgs ? import <nixpkgs> { }
|
|
|
|
|
, pkgsLinux ? import <nixpkgs> { system = "x86_64-linux"; }
|
|
|
|
|
}:
|
|
|
|
|
|
|
|
|
|
let
|
|
|
|
|
vars = import ./vars.nix;
|
|
|
|
|
|
|
|
|
|
# generate the reproducable blob below via:
|
|
|
|
|
# $ nix-shell -p nix-prefetch-docker --run 'nix-prefetch-docker ghcr.io/manyfold3d/manyfold-solo 0.117.0'
|
|
|
|
|
manyfoldImage = pkgs.dockerTools.pullImage {
|
|
|
|
|
imageName = "ghcr.io/manyfold3d/manyfold-solo";
|
|
|
|
|
imageDigest = "sha256:95ae855376eb075bd718018e09eeee2735eece87d26c392abd0d63c38c8db44b";
|
|
|
|
|
sha256 = "0na33qdll24cp4lc77dcmf3pi5s521gjrfqlahq52aw5vjapknfp";
|
|
|
|
|
finalImageName = "ghcr.io/manyfold3d/manyfold-solo";
|
|
|
|
|
finalImageTag = "0.117.0";
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
in
|
2025-07-28 17:52:11 +02:00
|
|
|
rec
|
2025-07-22 13:16:53 +02:00
|
|
|
{
|
2025-07-28 17:52:11 +02:00
|
|
|
|
|
|
|
|
xrforgeImage = pkgs.dockerTools.buildImage {
|
2025-07-22 13:16:53 +02:00
|
|
|
|
|
|
|
|
name = "xrforge";
|
|
|
|
|
tag = "latest";
|
2025-07-28 17:52:11 +02:00
|
|
|
created = "now";
|
2025-07-22 13:16:53 +02:00
|
|
|
fromImage = manyfoldImage;
|
|
|
|
|
|
|
|
|
|
# add nix pkgs + local files
|
2025-07-28 17:52:11 +02:00
|
|
|
contents = pkgs.buildEnv {
|
2025-07-22 13:16:53 +02:00
|
|
|
name = "image-root";
|
|
|
|
|
pathsToLink = ["/manyfold" "/bin"];
|
2025-07-28 17:52:11 +02:00
|
|
|
paths = [
|
|
|
|
|
pkgs.pkgsStatic.rsync
|
|
|
|
|
pkgs.pkgsStatic.sqlite
|
|
|
|
|
pkgs.pkgsStatic.rclone
|
|
|
|
|
pkgs.pkgsStatic.fuse3
|
|
|
|
|
./..
|
|
|
|
|
];
|
2025-07-22 13:16:53 +02:00
|
|
|
};
|
|
|
|
|
|
|
|
|
|
config = {
|
2025-07-28 17:52:11 +02:00
|
|
|
Cmd = ["/init"];
|
|
|
|
|
# We substitute the /init entrypoing with our own wrapper
|
|
|
|
|
EntryPoint = ["/manyfold/cli/manyfold.sh" "boot"];
|
2025-07-22 13:16:53 +02:00
|
|
|
};
|
|
|
|
|
};
|
2025-07-28 17:52:11 +02:00
|
|
|
|
2025-07-22 13:16:53 +02:00
|
|
|
}
|