diff --git a/core/src/main/java/org/testcontainers/containers/ParsedDockerComposeFile.java b/core/src/main/java/org/testcontainers/containers/ParsedDockerComposeFile.java index d797a86bfbf..2d3104af6b1 100644 --- a/core/src/main/java/org/testcontainers/containers/ParsedDockerComposeFile.java +++ b/core/src/main/java/org/testcontainers/containers/ParsedDockerComposeFile.java @@ -50,7 +50,7 @@ class ParsedDockerComposeFile { SafeConstructor constructor = new SafeConstructor(options) { @Override protected Object constructObject(Node node) { - if (node.getTag().equals(new Tag("!reset"))) { + if (node.getTag().equals(new Tag("!reset")) || node.getTag().equals(new Tag("!override"))) { return null; } return super.constructObject(node); diff --git a/core/src/test/java/org/testcontainers/junit/ComposeContainerOverrideTest.java b/core/src/test/java/org/testcontainers/junit/ComposeContainerOverrideTest.java index bf38af0f929..5065aaf62b2 100644 --- a/core/src/test/java/org/testcontainers/junit/ComposeContainerOverrideTest.java +++ b/core/src/test/java/org/testcontainers/junit/ComposeContainerOverrideTest.java @@ -45,4 +45,35 @@ void resetEnvironment() { assertThat(container.getConfig().getEnv()).doesNotContain("foo=bar"); } } + + @Test + void readLabel() { + try ( + ComposeContainer compose = new ComposeContainer(DockerImageName.parse("docker:25.0.5"), BASE) + .withExposedService("redis", 6379) + ) { + compose.start(); + InspectContainerResponse container = compose + .getContainerByServiceName("redis-1") + .map(ContainerState::getContainerInfo) + .get(); + assertThat(container.getConfig().getLabels()).containsKey("label1"); + } + } + + @Test + void readOverriddenLabel() { + try ( + ComposeContainer compose = new ComposeContainer(DockerImageName.parse("docker:25.0.5"), BASE, OVERRIDE) + .withExposedService("redis", 6379) + ) { + compose.start(); + InspectContainerResponse container = compose + .getContainerByServiceName("redis-1") + .map(ContainerState::getContainerInfo) + .get(); + assertThat(container.getConfig().getLabels()).doesNotContainKey("label1"); + assertThat(container.getConfig().getLabels()).containsKey("label2"); + } + } } diff --git a/core/src/test/resources/compose-override/compose-override.yml b/core/src/test/resources/compose-override/compose-override.yml index f5f457a6236..7dbf6ff5987 100644 --- a/core/src/test/resources/compose-override/compose-override.yml +++ b/core/src/test/resources/compose-override/compose-override.yml @@ -5,3 +5,5 @@ services: - 6379 environment: foo: !reset null + labels: !override + label2: value2 diff --git a/core/src/test/resources/compose-override/compose.yml b/core/src/test/resources/compose-override/compose.yml index a304ae82273..9e4a1e9169a 100644 --- a/core/src/test/resources/compose-override/compose.yml +++ b/core/src/test/resources/compose-override/compose.yml @@ -5,3 +5,5 @@ services: - 6379 environment: foo: bar + labels: + label1: value1