Skip to content

Commit 0feec90

Browse files
tjholmjyecusch
authored andcommitted
fix(engines): add docker build triggers
1 parent 42e0881 commit 0feec90

File tree

1 file changed

+17
-7
lines changed
  • engines/terraform/modules/image

1 file changed

+17
-7
lines changed

engines/terraform/modules/image/main.tf

Lines changed: 17 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,10 @@
1+
locals {
2+
context_path = "${path.root}/../../../${var.build_context != "." ? var.build_context : ""}"
3+
original_command = join(" ", compact([data.external.inspect_base_image.result.entrypoint, data.external.inspect_base_image.result.cmd]))
4+
image_id = var.image_id == null ? docker_image.base_service.image_id : var.image_id
5+
build_trigger = var.image_id == null ? sha1(join("", [for f in fileset(local.context_path, "**") : filesha1("${local.context_path}/${f}")])) : var.image_id
6+
}
7+
18
resource "docker_image" "base_service" {
29
name = var.image_id == null ? "${var.tag}_base_service" : var.image_id
310

@@ -7,12 +14,16 @@ resource "docker_image" "base_service" {
714
builder = "default"
815
platform = var.platform
916
# NOTE: This assumes the terraform output is three dirs down from the root of the project
10-
context = "${path.root}/../../../${var.build_context != "." ? var.build_context : ""}"
11-
dockerfile = "${path.root}/../../../${var.dockerfile}"
17+
context = local.context_path
18+
dockerfile = "${local.context_path}/${var.dockerfile}"
1219
tag = ["${var.tag}:base"]
1320
build_args = var.args
1421
}
1522
}
23+
24+
triggers = {
25+
build_trigger = local.build_trigger
26+
}
1627
}
1728

1829
# Extract entrypoint and command using Docker CLI via external data source
@@ -21,11 +32,6 @@ data "external" "inspect_base_image" {
2132
program = ["docker", "inspect", docker_image.base_service.image_id, "--format", "{\"entrypoint\":\"{{join .Config.Entrypoint \" \"}}\",\"cmd\":\"{{join .Config.Cmd \" \"}}\"}"]
2233
}
2334

24-
locals {
25-
original_command = join(" ", compact([data.external.inspect_base_image.result.entrypoint, data.external.inspect_base_image.result.cmd]))
26-
image_id = var.image_id == null ? docker_image.base_service.name : var.image_id
27-
}
28-
2935
# Next we want to wrap this image withing a suga service
3036
resource "docker_image" "service" {
3137
name = var.tag
@@ -42,4 +48,8 @@ resource "docker_image" "service" {
4248
}, var.args)
4349
tag = ["${var.tag}:latest"]
4450
}
51+
52+
triggers = {
53+
base_image_id = local.image_id
54+
}
4555
}

0 commit comments

Comments
 (0)