From ad502ab5c59a49eaf0c92f90201dffd4255a005a Mon Sep 17 00:00:00 2001 From: misuzu Date: Thu, 10 Jun 2021 23:19:08 +0300 Subject: [PATCH] nixos/sourcehut: automatically build and import qemu image for docker --- nixos/modules/services/misc/sourcehut/builds.nix | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/nixos/modules/services/misc/sourcehut/builds.nix b/nixos/modules/services/misc/sourcehut/builds.nix index e228665784e0..a17a1010dbf7 100644 --- a/nixos/modules/services/misc/sourcehut/builds.nix +++ b/nixos/modules/services/misc/sourcehut/builds.nix @@ -48,7 +48,6 @@ in default = false; description = '' Run workers for builds.sr.ht. - Perform manually on machine: `cd ${scfg.statePath}/images; docker build -t qemu -f qemu/Dockerfile .` ''; }; @@ -161,6 +160,21 @@ in partOf = [ "buildsrht.service" ]; description = "builds.sr.ht worker service"; path = [ pkgs.openssh pkgs.docker ]; + preStart = let qemuPackage = pkgs.qemu_kvm; + in '' + if [[ "$(docker images -q qemu:latest 2> /dev/null)" == "" || "$(cat ${statePath}/docker-image-qemu 2> /dev/null || true)" != "${qemuPackage.version}" ]]; then + # Create and import qemu:latest image for docker + ${ + pkgs.dockerTools.streamLayeredImage { + name = "qemu"; + tag = "latest"; + contents = [ qemuPackage ]; + } + } | docker load + # Mark down current package version + printf "%s" "${qemuPackage.version}" > ${statePath}/docker-image-qemu + fi + ''; serviceConfig = { Type = "simple"; User = user;