Add support for image mirroring

This commit is contained in:
Greyscale 2024-11-24 14:00:40 +01:00
parent d3d82ab265
commit ef40638cd6
Signed by: grey
GPG key ID: DDB392AE64B32D89
4 changed files with 26 additions and 1 deletions

17
docker/service/image.tf Normal file
View file

@ -0,0 +1,17 @@
resource "docker_image" "mirror" {
count = var.mirror != null ? 1 : 0
name = data.docker_registry_image.image.name
pull_triggers = [data.docker_registry_image.image.sha256_digest]
force_remove = false
}
resource "docker_tag" "mirror" {
count = var.mirror != null ? 1 : 0
source_image = docker_image.mirror[0].name
target_image = var.mirror
}
resource "docker_registry_image" "mirror" {
count = var.mirror != null ? 1 : 0
depends_on = [docker_tag.mirror[0]]
name = docker_tag.mirror[0].target_image
keep_remotely = true
}

View file

@ -1,6 +1,11 @@
variable "image" {
type = string
}
variable "mirror" {
type = string
default = null
description = "Whether to mirror the image to the local registry. Value is the mirror location."
}
variable "command" {
type = list(string)
default = null

View file

@ -14,4 +14,7 @@ locals {
"ooo.grey.service.image" = data.docker_registry_image.image.name
"ooo.grey.service.image.digest" = data.docker_registry_image.image.sha256_digest
})
# Calculate the docker image to use
image = var.mirror != null ? "${docker_registry_image.mirror[0].name}@${docker_registry_image.mirror[0].sha256_digest}" : "${data.docker_registry_image.image.name}@${data.docker_registry_image.image.sha256_digest}"
}

View file

@ -9,7 +9,7 @@ resource "docker_service" "instance" {
# Define the task spec
task_spec {
container_spec {
image = "${data.docker_registry_image.image.name}@${data.docker_registry_image.image.sha256_digest}"
image = local.image
command = var.command
env = var.environment_variables