Browse Source

Merge branch '3.5.x' into 4.0.x

Closes gh-49596
4.0.x
Andy Wilkinson 5 days ago
parent
commit
6779e09933
  1. 12
      buildpack/spring-boot-buildpack-platform/src/main/java/org/springframework/boot/buildpack/platform/docker/configuration/ResolvedDockerHost.java
  2. 25
      buildpack/spring-boot-buildpack-platform/src/test/java/org/springframework/boot/buildpack/platform/docker/configuration/ResolvedDockerHostTests.java

12
buildpack/spring-boot-buildpack-platform/src/main/java/org/springframework/boot/buildpack/platform/docker/configuration/ResolvedDockerHost.java

@ -59,9 +59,17 @@ public class ResolvedDockerHost extends DockerHost { @@ -59,9 +59,17 @@ public class ResolvedDockerHost extends DockerHost {
public String getAddress() {
String address = super.getAddress();
if (address == null) {
address = getDefaultAddress();
return getDefaultAddress();
}
return address.startsWith(UNIX_SOCKET_PREFIX) ? address.substring(UNIX_SOCKET_PREFIX.length()) : address;
if (address.startsWith(UNIX_SOCKET_PREFIX)) {
return address.substring(UNIX_SOCKET_PREFIX.length());
}
if (address.startsWith("tcp://")) {
while (address.endsWith("/")) {
address = address.substring(0, address.length() - 1);
}
}
return address;
}
public boolean isRemote() {

25
buildpack/spring-boot-buildpack-platform/src/test/java/org/springframework/boot/buildpack/platform/docker/configuration/ResolvedDockerHostTests.java

@ -140,6 +140,17 @@ class ResolvedDockerHostTests { @@ -140,6 +140,17 @@ class ResolvedDockerHostTests {
assertThat(dockerHost.getCertificatePath()).isEqualTo("/cert-path");
}
@Test
void resolveWhenDockerHostAddressIsTcpWithTrailingReturnsAddress() {
ResolvedDockerHost dockerHost = ResolvedDockerHost.from(this.environment::get,
new DockerConnectionConfiguration.Host("tcp://192.168.99.100:2376/", true, "/cert-path"));
assertThat(dockerHost.isLocalFileReference()).isFalse();
assertThat(dockerHost.isRemote()).isTrue();
assertThat(dockerHost.getAddress()).isEqualTo("tcp://192.168.99.100:2376");
assertThat(dockerHost.isSecure()).isTrue();
assertThat(dockerHost.getCertificatePath()).isEqualTo("/cert-path");
}
@Test
void resolveWhenEnvironmentAddressIsLocalReturnsAddress(@TempDir Path tempDir) throws IOException {
String socketFilePath = Files.createTempFile(tempDir, "remote-transport", null).toAbsolutePath().toString();
@ -180,6 +191,20 @@ class ResolvedDockerHostTests { @@ -180,6 +191,20 @@ class ResolvedDockerHostTests {
assertThat(dockerHost.getCertificatePath()).isEqualTo("/cert-path");
}
@Test
void resolveWhenEnvironmentAddressIsTcpWithTrailingSlashReturnsAddress() {
this.environment.put("DOCKER_HOST", "tcp://192.168.99.100:2376/");
this.environment.put("DOCKER_TLS_VERIFY", "1");
this.environment.put("DOCKER_CERT_PATH", "/cert-path");
ResolvedDockerHost dockerHost = ResolvedDockerHost.from(this.environment::get,
new DockerConnectionConfiguration.Host("tcp://1.1.1.1"));
assertThat(dockerHost.isLocalFileReference()).isFalse();
assertThat(dockerHost.isRemote()).isTrue();
assertThat(dockerHost.getAddress()).isEqualTo("tcp://192.168.99.100:2376");
assertThat(dockerHost.isSecure()).isTrue();
assertThat(dockerHost.getCertificatePath()).isEqualTo("/cert-path");
}
@Test
void resolveWithDockerHostContextReturnsAddress() throws Exception {
this.environment.put("DOCKER_CONFIG", pathToResource("with-default-context/config.json"));

Loading…
Cancel
Save