diff --git a/nix/t1/release/default.nix b/nix/t1/release/default.nix index b1e20d8df..6dcb70a55 100644 --- a/nix/t1/release/default.nix +++ b/nix/t1/release/default.nix @@ -50,7 +50,7 @@ lib.makeScope newScope (scope: rec { --add-flags "--emulator-path ${ip.emu-trace}/bin/emulator" ''; - docker-layers = scope.callPackage ./docker-layers.nix { }; + docker-image = scope.callPackage ./docker-image.nix { }; doc = stdenvNoCC.mkDerivation { name = "${configName}-typst-release-doc"; diff --git a/nix/t1/release/docker-layers.nix b/nix/t1/release/docker-image.nix similarity index 59% rename from nix/t1/release/docker-layers.nix rename to nix/t1/release/docker-image.nix index e8c164f90..32dcde754 100644 --- a/nix/t1/release/docker-layers.nix +++ b/nix/t1/release/docker-image.nix @@ -1,7 +1,9 @@ { lib # build deps , dockerTools +, buildEnv , runCommand +, runtimeShell # Runtime deps , bashInteractive @@ -17,24 +19,27 @@ }: let - # Don't use buildImage which relies on KVM feature - self = dockerTools.streamLayeredImage { + # dockerTools.buildImage relies on KVM feature, don't run it inside VMs + self = dockerTools.buildImage rec { name = "chipsalliance/t1-${configName}"; tag = "latest"; - contents = with dockerTools; [ - usrBinEnv - binSh + copyToRoot = buildEnv { + name = "${name}.imageroot"; + paths = with dockerTools; [ + usrBinEnv + binSh - bashInteractive - which + bashInteractive + which - emulator-wrapped - ] - ++ rv32-stdenv.initialPath; + emulator-wrapped + ] ++ rv32-stdenv.initialPath; + pathsToLink = [ "/bin" ]; + }; - enableFakechroot = true; - fakeRootCommands = '' + runAsRoot = '' + #!${runtimeShell} echo "Start finalizing rootfs" echo "Creating testcase directory" @@ -46,21 +51,13 @@ let done chmod u+w -R /workspace/cases - mkdir /tmp + mkdir -p /tmp ''; config = { # Cmd = [ ]; WorkingDir = "/workspace"; }; - - passthru = { - final-image = runCommand "convert-layer-to-final-image" { } '' - mkdir $out - - ${bashInteractive}/bin/bash ${self} > $out/image.tar - ''; - }; }; in self