From 302aca85b13880bfdf74a3fc071ba34306a0a956 Mon Sep 17 00:00:00 2001 From: Sergei Egorov Date: Thu, 28 May 2020 18:00:50 +0200 Subject: [PATCH] Add default labels to images created with `ImageFromDockerfile` --- .../images/builder/ImageFromDockerfile.java | 6 +++++ .../builder/ImageFromDockerfileTest.java | 27 +++++++++++++++++++ 2 files changed, 33 insertions(+) create mode 100644 core/src/test/java/org/testcontainers/images/builder/ImageFromDockerfileTest.java diff --git a/core/src/main/java/org/testcontainers/images/builder/ImageFromDockerfile.java b/core/src/main/java/org/testcontainers/images/builder/ImageFromDockerfile.java index 11a7e2f4cb6..638db2e351d 100644 --- a/core/src/main/java/org/testcontainers/images/builder/ImageFromDockerfile.java +++ b/core/src/main/java/org/testcontainers/images/builder/ImageFromDockerfile.java @@ -107,6 +107,12 @@ public void onNext(BuildResponseItem item) { BuildImageCmd buildImageCmd = dockerClient.buildImageCmd(in); configure(buildImageCmd); + Map labels = new HashMap<>(); + if (buildImageCmd.getLabels() != null) { + labels.putAll(buildImageCmd.getLabels()); + } + labels.putAll(DockerClientFactory.DEFAULT_LABELS); + buildImageCmd.withLabels(labels); prePullDependencyImages(dependencyImageNames); diff --git a/core/src/test/java/org/testcontainers/images/builder/ImageFromDockerfileTest.java b/core/src/test/java/org/testcontainers/images/builder/ImageFromDockerfileTest.java new file mode 100644 index 00000000000..93ec5cb5cd1 --- /dev/null +++ b/core/src/test/java/org/testcontainers/images/builder/ImageFromDockerfileTest.java @@ -0,0 +1,27 @@ +package org.testcontainers.images.builder; + +import com.github.dockerjava.api.DockerClient; +import com.github.dockerjava.api.command.InspectImageResponse; +import org.junit.Test; +import org.testcontainers.DockerClientFactory; + +import static org.assertj.core.api.Assertions.assertThat; + +public class ImageFromDockerfileTest { + + @Test + public void shouldAddDefaultLabels() { + ImageFromDockerfile image = new ImageFromDockerfile() + .withDockerfileFromBuilder(it -> it.from("scratch")); + + String imageId = image.resolve(); + + DockerClient dockerClient = DockerClientFactory.instance().client(); + + InspectImageResponse inspectImageResponse = dockerClient.inspectImageCmd(imageId).exec(); + + assertThat(inspectImageResponse.getConfig().getLabels()) + .containsAllEntriesOf(DockerClientFactory.DEFAULT_LABELS); + } + +}