From 557f249ab1673de7531516dcde2b2b5163b76fa2 Mon Sep 17 00:00:00 2001 From: matt1432 Date: Tue, 9 Jan 2024 13:48:00 -0500 Subject: [PATCH] feat(docker): add update script for declared images --- devices/servivi/modules/arion/default.nix | 27 +++++++++++++++++++ .../arion/forgejo/images/act_runner.nix | 4 +-- 2 files changed, 29 insertions(+), 2 deletions(-) diff --git a/devices/servivi/modules/arion/default.nix b/devices/servivi/modules/arion/default.nix index 8db53f5..a5c11ae 100644 --- a/devices/servivi/modules/arion/default.nix +++ b/devices/servivi/modules/arion/default.nix @@ -14,6 +14,33 @@ in { users.extraUsers.${mainUser}.extraGroups = ["docker"]; + environment.systemPackages = with pkgs; [ + nix-prefetch-docker + (writeShellScriptBin "updateImages" '' + pull() { + FILE="$1" + IMAGE=$(sed -n 's/.*imageName = "\([^"]*\).*/\1/p' "$FILE") + TAG=$(sed -n 's/.*finalImageTag = "\([^"]*\).*/\1/p' "$FILE") + + echo "$IMAGE $TAG" + + PREFETCH=$(nix-prefetch-docker "$IMAGE" "$TAG") + + echo -e "pkgs:\npkgs.dockerTools.pullImage $PREFETCH" > "$FILE" + } + + DIR="$1" + if [ -z "$DIR" ]; then + DIR="." + fi + + IFS=$'\n' + for i in $(find "$DIR"/images -type f); do + pull "$i" + done + unset IFS + '') + ]; services.borgbackup.configs.arion = { paths = [configPath]; diff --git a/devices/servivi/modules/arion/forgejo/images/act_runner.nix b/devices/servivi/modules/arion/forgejo/images/act_runner.nix index cd6d558..cf3be25 100644 --- a/devices/servivi/modules/arion/forgejo/images/act_runner.nix +++ b/devices/servivi/modules/arion/forgejo/images/act_runner.nix @@ -1,8 +1,8 @@ pkgs: pkgs.dockerTools.pullImage { imageName = "vegardit/gitea-act-runner"; - imageDigest = "sha256:b785240f713d93f4a2d2a82926eacd0ac1deeae360d8ddfbd456102850285efb"; - sha256 = "0z2vd663zyyfcz0rnl2ksivxmh63nhh4g42qx2idqb6j27s426bq"; + imageDigest = "sha256:cebdf60a65a2bba2e3d59d906f65ee45c05643cb5ee74be4d2a73a93708084cd"; + sha256 = "1pfbad0k719s094qhmcy2kmnvsjvllzr19cnx5jlf9cfm9cglvr1"; finalImageName = "vegardit/gitea-act-runner"; finalImageTag = "dind-latest"; }