diff --git a/docker-compose-rule-core/src/main/java/com/palantir/docker/compose/connection/DockerMachine.java b/docker-compose-rule-core/src/main/java/com/palantir/docker/compose/connection/DockerMachine.java index d6525fe73..51eded915 100644 --- a/docker-compose-rule-core/src/main/java/com/palantir/docker/compose/connection/DockerMachine.java +++ b/docker-compose-rule-core/src/main/java/com/palantir/docker/compose/connection/DockerMachine.java @@ -100,12 +100,19 @@ public LocalBuilder withEnvironment(Map newEnvironment) { public DockerMachine build() { dockerType.validateEnvironmentVariables(systemEnvironment); AdditionalEnvironmentValidator.validate(additionalEnvironment); + + String dockerHost = systemEnvironment.getOrDefault(DOCKER_HOST, ""); + String hostIp = dockerType.resolveIp(dockerHost); + Map combinedEnvironment = newHashMap(); combinedEnvironment.putAll(systemEnvironment); combinedEnvironment.putAll(additionalEnvironment); + // 2019-12-17: newer docker-compose adjusts its output based on the number of columns available + // in the terminal. This interferes with parsing of the output of docker-compose, so "COLUMNS" is + // set to an artificially large value. + combinedEnvironment.put("COLUMNS", "10000"); - String dockerHost = systemEnvironment.getOrDefault(DOCKER_HOST, ""); - return new DockerMachine(dockerType.resolveIp(dockerHost), ImmutableMap.copyOf(combinedEnvironment)); + return new DockerMachine(hostIp, ImmutableMap.copyOf(combinedEnvironment)); } } @@ -154,15 +161,15 @@ public DockerMachine build() { String dockerHost = dockerEnvironment.getOrDefault(DOCKER_HOST, ""); String hostIp = new RemoteHostIpResolver().resolveIp(dockerHost); - Map environment = ImmutableMap.builder() - // 2019-12-17: newer docker-compose adjusts its output based on the number of columns available - // in the terminal. This interferes with parsing of the output of docker-compose, so "COLUMNS" is - // set to an artificially large value. - .put("COLUMNS", "10000") - .putAll(dockerEnvironment) - .putAll(additionalEnvironment) - .build(); - return new DockerMachine(hostIp, environment); + Map combinedEnvironment = newHashMap(); + combinedEnvironment.putAll(dockerEnvironment); + combinedEnvironment.putAll(additionalEnvironment); + // 2019-12-17: newer docker-compose adjusts its output based on the number of columns available + // in the terminal. This interferes with parsing of the output of docker-compose, so "COLUMNS" is + // set to an artificially large value. + combinedEnvironment.put("COLUMNS", "10000"); + + return new DockerMachine(hostIp, ImmutableMap.copyOf(combinedEnvironment)); } }