diff options
author | misuzu <bakalolka@gmail.com> | 2021-06-10 23:19:08 +0300 |
---|---|---|
committer | tomberek <tomberek@users.noreply.github.com> | 2021-06-11 11:48:49 -0400 |
commit | ad502ab5c59a49eaf0c92f90201dffd4255a005a (patch) | |
tree | bd2cf2d32240d0841538b2b55f1f3f1604669eff /nixos | |
parent | 5707a8efadbd9a2bfe5aa663555c62ba2933cc81 (diff) | |
download | nixlib-ad502ab5c59a49eaf0c92f90201dffd4255a005a.tar nixlib-ad502ab5c59a49eaf0c92f90201dffd4255a005a.tar.gz nixlib-ad502ab5c59a49eaf0c92f90201dffd4255a005a.tar.bz2 nixlib-ad502ab5c59a49eaf0c92f90201dffd4255a005a.tar.lz nixlib-ad502ab5c59a49eaf0c92f90201dffd4255a005a.tar.xz nixlib-ad502ab5c59a49eaf0c92f90201dffd4255a005a.tar.zst nixlib-ad502ab5c59a49eaf0c92f90201dffd4255a005a.zip |
nixos/sourcehut: automatically build and import qemu image for docker
Diffstat (limited to 'nixos')
-rw-r--r-- | nixos/modules/services/misc/sourcehut/builds.nix | 16 |
1 files changed, 15 insertions, 1 deletions
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; |