Skip to content

Commit 87ea106

Browse files
authored
Add support for !override docker compose tag (#11490)
1 parent 7fe356e commit 87ea106

4 files changed

Lines changed: 36 additions & 1 deletion

File tree

core/src/main/java/org/testcontainers/containers/ParsedDockerComposeFile.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ class ParsedDockerComposeFile {
5050
SafeConstructor constructor = new SafeConstructor(options) {
5151
@Override
5252
protected Object constructObject(Node node) {
53-
if (node.getTag().equals(new Tag("!reset"))) {
53+
if (node.getTag().equals(new Tag("!reset")) || node.getTag().equals(new Tag("!override"))) {
5454
return null;
5555
}
5656
return super.constructObject(node);

core/src/test/java/org/testcontainers/junit/ComposeContainerOverrideTest.java

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,4 +45,35 @@ void resetEnvironment() {
4545
assertThat(container.getConfig().getEnv()).doesNotContain("foo=bar");
4646
}
4747
}
48+
49+
@Test
50+
void readLabel() {
51+
try (
52+
ComposeContainer compose = new ComposeContainer(DockerImageName.parse("docker:25.0.5"), BASE)
53+
.withExposedService("redis", 6379)
54+
) {
55+
compose.start();
56+
InspectContainerResponse container = compose
57+
.getContainerByServiceName("redis-1")
58+
.map(ContainerState::getContainerInfo)
59+
.get();
60+
assertThat(container.getConfig().getLabels()).containsKey("label1");
61+
}
62+
}
63+
64+
@Test
65+
void readOverriddenLabel() {
66+
try (
67+
ComposeContainer compose = new ComposeContainer(DockerImageName.parse("docker:25.0.5"), BASE, OVERRIDE)
68+
.withExposedService("redis", 6379)
69+
) {
70+
compose.start();
71+
InspectContainerResponse container = compose
72+
.getContainerByServiceName("redis-1")
73+
.map(ContainerState::getContainerInfo)
74+
.get();
75+
assertThat(container.getConfig().getLabels()).doesNotContainKey("label1");
76+
assertThat(container.getConfig().getLabels()).containsKey("label2");
77+
}
78+
}
4879
}

core/src/test/resources/compose-override/compose-override.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,3 +5,5 @@ services:
55
- 6379
66
environment:
77
foo: !reset null
8+
labels: !override
9+
label2: value2

core/src/test/resources/compose-override/compose.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,3 +5,5 @@ services:
55
- 6379
66
environment:
77
foo: bar
8+
labels:
9+
label1: value1

0 commit comments

Comments
 (0)