From a379eb0da25e88a89259ed8c6c945257f27215da Mon Sep 17 00:00:00 2001 From: Sergey Kapralov Date: Tue, 17 Aug 2021 18:01:17 +0300 Subject: [PATCH] Made docker/compose version overridable (#4296) --- .../containers/DockerComposeContainer.java | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/core/src/main/java/org/testcontainers/containers/DockerComposeContainer.java b/core/src/main/java/org/testcontainers/containers/DockerComposeContainer.java index 961d066cb91..7c3d2875bab 100644 --- a/core/src/main/java/org/testcontainers/containers/DockerComposeContainer.java +++ b/core/src/main/java/org/testcontainers/containers/DockerComposeContainer.java @@ -71,7 +71,7 @@ */ @Slf4j public class DockerComposeContainer> extends FailureDetectingExternalResource implements Startable { - + private static final String DEFAULT_DOCKER_COMPOSE_VERSION = "1.29.2"; /** * Random identifier which will become part of spawned containers names, so we can shut them down */ @@ -81,6 +81,7 @@ public class DockerComposeContainer> e private final Map scalingPreferences = new HashMap<>(); private DockerClient dockerClient; private boolean localCompose; + private String dockerComposeVersion = DEFAULT_DOCKER_COMPOSE_VERSION; private boolean pull = true; private boolean build = false; private Set options = new HashSet<>(); @@ -195,6 +196,11 @@ private void pullImages() { }); } + public SELF withDockerComposeVersion(String version) { + this.dockerComposeVersion = version; + return self(); + } + public SELF withServices(@NonNull String... services) { this.services = Arrays.asList(services); return self(); @@ -300,7 +306,7 @@ private void runWithCompose(String cmd) { if (localCompose) { dockerCompose = new LocalDockerCompose(composeFiles, project); } else { - dockerCompose = new ContainerisedDockerCompose(composeFiles, project); + dockerCompose = new ContainerisedDockerCompose(composeFiles, project, dockerComposeVersion); } dockerCompose @@ -608,11 +614,11 @@ interface DockerCompose { class ContainerisedDockerCompose extends GenericContainer implements DockerCompose { public static final char UNIX_PATH_SEPERATOR = ':'; - public static final DockerImageName DEFAULT_IMAGE_NAME = DockerImageName.parse("docker/compose:1.29.2"); + public static final String DEFAULT_IMAGE_NAME = "docker/compose"; - public ContainerisedDockerCompose(List composeFiles, String identifier) { + public ContainerisedDockerCompose(List composeFiles, String identifier, String dockerComposeVersion) { - super(DEFAULT_IMAGE_NAME); + super(DockerImageName.parse(DEFAULT_IMAGE_NAME + ":" + dockerComposeVersion)); addEnv(ENV_PROJECT_NAME, identifier); // Map the docker compose file into the container