From d207dfbeec495fed22537aca8b5e64b03756a2e3 Mon Sep 17 00:00:00 2001 From: Mel Date: Mon, 9 Dec 2024 02:14:02 +0100 Subject: Export common.pullImage, support alternative registries Signed-off-by: Mel --- pkgs/common.nix | 28 ++++++++++++++++++++-------- 1 file changed, 20 insertions(+), 8 deletions(-) (limited to 'pkgs') diff --git a/pkgs/common.nix b/pkgs/common.nix index cf99b77..d6bd9c6 100644 --- a/pkgs/common.nix +++ b/pkgs/common.nix @@ -17,8 +17,9 @@ let }; }; - mkImage = + pullImage = { + registry ? "docker", name, tag, digest, @@ -27,8 +28,17 @@ let let arch = systemToArch.${system}; + registryUrl = + assert lib.assertOneOf + "unknown image registry" + registry [ "docker" "github" ]; + { + "docker" = ""; + "github" = "ghcr.io/"; + }.${registry}; + image = dockerTools.pullImage { - imageName = name; + imageName = registryUrl + name; imageDigest = digest; finalImageName = name; finalImageTag = tag; @@ -44,7 +54,9 @@ let }; images = { - alpine = mkImage { + inherit pullImage; + + alpine = pullImage { name = "alpine"; tag = "3.20.3"; digest = "sha256:1e42bbe2508154c9126d48c2b8a75420c3544343bf86fd041fb7527e017a4b4a"; @@ -52,7 +64,7 @@ let arm.sha256 = "06c0q5kk60i89y1d83a28wk282ymp806xjcsmlca4cwwqp590j0q"; }; - postgres13 = mkImage { + postgres13 = pullImage { name = "postgres"; tag = "13-alpine"; digest = "sha256:857aa00fc7e8541e3e5818b7bb8596182cb5c1b3ad964e4184e90682d5ca0d57"; @@ -60,7 +72,7 @@ let arm.sha256 = "0kjxk2sd03445mgf54x1ir9w2zmjn41zgmyns2h3k3cd7qazhkrx"; }; - postgres14 = mkImage { + postgres14 = pullImage { name = "postgres"; tag = "14-alpine"; digest = "sha256:3f5fc44eeb8e8b42448e218f05299105761a2c33b54a89d9fd06c87cd5f7b043"; @@ -68,7 +80,7 @@ let arm.sha256 = "1gh6f4frfilr5mp6smp1k00aijd9vh1kv711a64044yl9kqr2nci"; }; - postgres15 = mkImage { + postgres15 = pullImage { name = "postgres"; tag = "15-alpine"; digest = "sha256:8b963ea3038c3b32182ee7f592ccde21242fa7c5fd9d1b72aa333c27f1bfc809"; @@ -76,7 +88,7 @@ let arm.sha256 = "0wydmscp4znjdflycvjqwjfry9crizhav0wc2hnajbyvk4ql32h8"; }; - postgres16 = mkImage { + postgres16 = pullImage { name = "postgres"; tag = "16-alpine"; digest = "sha256:52bba373df3c13594014b5e9ccc9f3c2cdb2221d50db1a91ec64570819f18aba"; @@ -84,7 +96,7 @@ let arm.sha256 = "08i3n6kykhp0wd255xvkrpgv1n6izjm9gc57dg6nz4yz3yjnybzh"; }; - postgres17 = mkImage { + postgres17 = pullImage { name = "postgres"; tag = "17-alpine"; digest = "sha256:e7897baa70dae1968d23d785adb4aeb699175e0bcaae44f98a7083ecb9668b93"; -- cgit 1.4.1