Browse Source

Use default address if null address is given

Closes gh-42958
pull/42986/head
Moritz Halbritter 1 year ago
parent
commit
90b920a410
  1. 13
      spring-boot-project/spring-boot-tools/spring-boot-buildpack-platform/src/main/java/org/springframework/boot/buildpack/platform/docker/configuration/ResolvedDockerHost.java
  2. 21
      spring-boot-project/spring-boot-tools/spring-boot-buildpack-platform/src/test/java/org/springframework/boot/buildpack/platform/docker/configuration/ResolvedDockerHostTests.java

13
spring-boot-project/spring-boot-tools/spring-boot-buildpack-platform/src/main/java/org/springframework/boot/buildpack/platform/docker/configuration/ResolvedDockerHost.java

@ -57,8 +57,11 @@ public class ResolvedDockerHost extends DockerHost { @@ -57,8 +57,11 @@ public class ResolvedDockerHost extends DockerHost {
@Override
public String getAddress() {
return super.getAddress().startsWith(UNIX_SOCKET_PREFIX)
? super.getAddress().substring(UNIX_SOCKET_PREFIX.length()) : super.getAddress();
String address = super.getAddress();
if (address == null) {
address = getDefaultAddress();
}
return address.startsWith(UNIX_SOCKET_PREFIX) ? address.substring(UNIX_SOCKET_PREFIX.length()) : address;
}
public boolean isRemote() {
@ -100,7 +103,11 @@ public class ResolvedDockerHost extends DockerHost { @@ -100,7 +103,11 @@ public class ResolvedDockerHost extends DockerHost {
DockerContext context = config.getContext();
return new ResolvedDockerHost(context.getDockerHost(), context.isTlsVerify(), context.getTlsPath());
}
return new ResolvedDockerHost(Platform.isWindows() ? WINDOWS_NAMED_PIPE_PATH : DOMAIN_SOCKET_PATH);
return new ResolvedDockerHost(getDefaultAddress());
}
private static String getDefaultAddress() {
return Platform.isWindows() ? WINDOWS_NAMED_PIPE_PATH : DOMAIN_SOCKET_PATH;
}
private static boolean isTrue(String value) {

21
spring-boot-project/spring-boot-tools/spring-boot-buildpack-platform/src/test/java/org/springframework/boot/buildpack/platform/docker/configuration/ResolvedDockerHostTests.java

@ -39,6 +39,7 @@ import static org.assertj.core.api.Assertions.assertThat; @@ -39,6 +39,7 @@ import static org.assertj.core.api.Assertions.assertThat;
* Tests for {@link ResolvedDockerHost}.
*
* @author Scott Frederick
* @author Moritz Halbritter
*/
class ResolvedDockerHostTests {
@ -64,6 +65,16 @@ class ResolvedDockerHostTests { @@ -64,6 +65,16 @@ class ResolvedDockerHostTests {
assertThat(dockerHost.getCertificatePath()).isNull();
}
@Test
@EnabledOnOs(OS.WINDOWS)
void resolveWhenUsingDefaultContextReturnsWindowsDefault() {
this.environment.put("DOCKER_CONTEXT", "default");
ResolvedDockerHost dockerHost = ResolvedDockerHost.from(this.environment::get, null);
assertThat(dockerHost.getAddress()).isEqualTo("//./pipe/docker_engine");
assertThat(dockerHost.isSecure()).isFalse();
assertThat(dockerHost.getCertificatePath()).isNull();
}
@Test
@DisabledOnOs(OS.WINDOWS)
void resolveWhenDockerHostAddressIsNullReturnsLinuxDefault() throws Exception {
@ -75,6 +86,16 @@ class ResolvedDockerHostTests { @@ -75,6 +86,16 @@ class ResolvedDockerHostTests {
assertThat(dockerHost.getCertificatePath()).isNull();
}
@Test
@DisabledOnOs(OS.WINDOWS)
void resolveWhenUsingDefaultContextReturnsLinuxDefault() {
this.environment.put("DOCKER_CONTEXT", "default");
ResolvedDockerHost dockerHost = ResolvedDockerHost.from(this.environment::get, null);
assertThat(dockerHost.getAddress()).isEqualTo("/var/run/docker.sock");
assertThat(dockerHost.isSecure()).isFalse();
assertThat(dockerHost.getCertificatePath()).isNull();
}
@Test
void resolveWhenDockerHostAddressIsLocalReturnsAddress(@TempDir Path tempDir) throws IOException {
String socketFilePath = Files.createTempFile(tempDir, "remote-transport", null).toAbsolutePath().toString();

Loading…
Cancel
Save