diff --git a/core/src/main/java/org/testcontainers/containers/ComposeContainer.java b/core/src/main/java/org/testcontainers/containers/ComposeContainer.java index 081c71b3338..a865e744dd6 100644 --- a/core/src/main/java/org/testcontainers/containers/ComposeContainer.java +++ b/core/src/main/java/org/testcontainers/containers/ComposeContainer.java @@ -165,7 +165,7 @@ public void stop() { if (removeImages != null) { cmd += " --rmi " + removeImages.dockerRemoveImagesType(); } - this.composeDelegate.runWithCompose(this.localCompose, cmd); + this.composeDelegate.runWithCompose(this.localCompose, cmd, this.env); } finally { this.project = this.composeDelegate.randomProjectId(); } diff --git a/core/src/main/java/org/testcontainers/containers/DockerComposeContainer.java b/core/src/main/java/org/testcontainers/containers/DockerComposeContainer.java index 3a8ab5b4ddc..68f9ec26ba6 100644 --- a/core/src/main/java/org/testcontainers/containers/DockerComposeContainer.java +++ b/core/src/main/java/org/testcontainers/containers/DockerComposeContainer.java @@ -172,7 +172,7 @@ public void stop() { if (removeImages != null) { cmd += " --rmi " + removeImages.dockerRemoveImagesType(); } - this.composeDelegate.runWithCompose(this.localCompose, cmd); + this.composeDelegate.runWithCompose(this.localCompose, cmd, this.env); } finally { this.project = this.composeDelegate.randomProjectId(); } diff --git a/core/src/test/java/org/testcontainers/junit/ComposeContainerPortViaEnvTest.java b/core/src/test/java/org/testcontainers/junit/ComposeContainerPortViaEnvTest.java new file mode 100644 index 00000000000..b27f4b080da --- /dev/null +++ b/core/src/test/java/org/testcontainers/junit/ComposeContainerPortViaEnvTest.java @@ -0,0 +1,21 @@ +package org.testcontainers.junit; + +import org.junit.Rule; +import org.testcontainers.containers.ComposeContainer; + +import java.io.File; + +public class ComposeContainerPortViaEnvTest extends BaseComposeTest { + + @Rule + public ComposeContainer environment = new ComposeContainer( + new File("src/test/resources/v2-compose-test-port-via-env.yml") + ) + .withExposedService("redis-1", REDIS_PORT) + .withEnv("REDIS_PORT", String.valueOf(REDIS_PORT)); + + @Override + protected ComposeContainer getEnvironment() { + return environment; + } +} diff --git a/core/src/test/java/org/testcontainers/junit/DockerComposeContainerPortViaEnvTest.java b/core/src/test/java/org/testcontainers/junit/DockerComposeContainerPortViaEnvTest.java new file mode 100644 index 00000000000..849e2a8e6a6 --- /dev/null +++ b/core/src/test/java/org/testcontainers/junit/DockerComposeContainerPortViaEnvTest.java @@ -0,0 +1,21 @@ +package org.testcontainers.junit; + +import org.junit.Rule; +import org.testcontainers.containers.DockerComposeContainer; + +import java.io.File; + +public class DockerComposeContainerPortViaEnvTest extends BaseDockerComposeTest { + + @Rule + public DockerComposeContainer environment = new DockerComposeContainer( + new File("src/test/resources/v2-compose-test-port-via-env.yml") + ) + .withExposedService("redis_1", REDIS_PORT) + .withEnv("REDIS_PORT", String.valueOf(REDIS_PORT)); + + @Override + protected DockerComposeContainer getEnvironment() { + return environment; + } +} diff --git a/core/src/test/resources/v2-compose-test-port-via-env.yml b/core/src/test/resources/v2-compose-test-port-via-env.yml new file mode 100644 index 00000000000..2b4929594be --- /dev/null +++ b/core/src/test/resources/v2-compose-test-port-via-env.yml @@ -0,0 +1,5 @@ +services: + redis: + image: redis + ports: + - ${REDIS_PORT}