at 17.09-beta 32 lines 930 B view raw
1{ stdenv, lib, docker, vmTools, utillinux, curl, kmod, dhcp, cacert, e2fsprogs }: 2let 3 nameReplace = name: builtins.replaceStrings ["/" ":"] ["-" "-"] name; 4in 5# For simplicity we only support sha256. 6{ imageName, imageTag ? "latest", imageId ? "${imageName}:${imageTag}" 7, sha256, name ? (nameReplace "docker-image-${imageName}-${imageTag}.tar") }: 8let 9 pullImage = vmTools.runInLinuxVM ( 10 stdenv.mkDerivation { 11 inherit name imageId; 12 13 certs = "${cacert}/etc/ssl/certs/ca-bundle.crt"; 14 15 builder = ./pull.sh; 16 17 buildInputs = [ curl utillinux docker kmod dhcp cacert e2fsprogs ]; 18 19 outputHashAlgo = "sha256"; 20 outputHash = sha256; 21 22 impureEnvVars = lib.fetchers.proxyImpureEnvVars; 23 24 preVM = vmTools.createEmptyImage { 25 size = 2048; 26 fullName = "${name}-disk"; 27 }; 28 29 QEMU_OPTS = "-netdev user,id=net0 -device virtio-net-pci,netdev=net0"; 30 }); 31in 32 pullImage