Backport use docker-java 3.0.x for launch tests

Backport commit d439b73758 to upgrade launch integration tests to
use docker-java 3.0.x.
This commit is contained in:
Phillip Webb
2018-01-10 11:56:09 -08:00
parent 7b3bedc468
commit 84fa67d33e
4 changed files with 28 additions and 65 deletions

View File

@@ -18,32 +18,32 @@ package org.springframework.boot.launchscript;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.HashSet;
import java.util.List;
import java.util.concurrent.TimeUnit;
import java.util.regex.Pattern;
import javax.ws.rs.client.ClientRequestContext;
import javax.ws.rs.client.ClientRequestFilter;
import javax.ws.rs.client.Entity;
import javax.ws.rs.client.WebTarget;
import com.github.dockerjava.api.DockerClient;
import com.github.dockerjava.api.DockerClientException;
import com.github.dockerjava.api.command.DockerCmd;
import com.github.dockerjava.api.exception.DockerClientException;
import com.github.dockerjava.api.model.BuildResponseItem;
import com.github.dockerjava.api.model.Frame;
import com.github.dockerjava.core.CompressArchiveUtil;
import com.github.dockerjava.core.DefaultDockerClientConfig;
import com.github.dockerjava.core.DockerClientBuilder;
import com.github.dockerjava.core.DockerClientConfig;
import com.github.dockerjava.core.command.AttachContainerResultCallback;
import com.github.dockerjava.core.command.BuildImageResultCallback;
import com.github.dockerjava.core.command.WaitContainerResultCallback;
import com.github.dockerjava.core.util.CompressArchiveUtil;
import com.github.dockerjava.jaxrs.AbstrSyncDockerCmdExec;
import com.github.dockerjava.jaxrs.DockerCmdExecFactoryImpl;
import com.github.dockerjava.jaxrs.JerseyDockerCmdExecFactory;
import org.assertj.core.api.Condition;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -250,8 +250,10 @@ public class SysVinitLaunchScriptIT {
}
});
resultCallback.awaitCompletion(60, TimeUnit.SECONDS).close();
docker.waitContainerCmd(container).exec();
resultCallback.awaitCompletion(60, TimeUnit.SECONDS);
WaitContainerResultCallback waitContainerCallback = new WaitContainerResultCallback();
docker.waitContainerCmd(container).exec(waitContainerCallback);
waitContainerCallback.awaitCompletion(60, TimeUnit.SECONDS);
return output.toString();
}
finally {
@@ -265,11 +267,10 @@ public class SysVinitLaunchScriptIT {
}
private DockerClient createClient() {
DockerClientConfig config = DockerClientConfig.createDefaultConfigBuilder()
.withVersion("1.19").build();
DockerClient docker = DockerClientBuilder.getInstance(config)
DockerClientConfig config = DefaultDockerClientConfig.createDefaultConfigBuilder()
.withApiVersion("1.19").build();
return DockerClientBuilder.getInstance(config)
.withDockerCmdExecFactory(this.commandExecFactory).build();
return docker;
}
private String buildImage(DockerClient docker) {
@@ -325,7 +326,8 @@ public class SysVinitLaunchScriptIT {
}
};
docker.buildImageCmd(new File(dockerfile)).withTag(tag).exec(resultCallback);
docker.buildImageCmd(new File(dockerfile))
.withTags(new HashSet<String>(Arrays.asList(tag))).exec(resultCallback);
String imageId = resultCallback.awaitImageId();
return imageId;
}
@@ -446,20 +448,7 @@ public class SysVinitLaunchScriptIT {
}
private static final class SpringBootDockerCmdExecFactory
extends DockerCmdExecFactoryImpl {
private SpringBootDockerCmdExecFactory() {
withClientRequestFilters(new ClientRequestFilter() {
@Override
public void filter(ClientRequestContext requestContext)
throws IOException {
// Workaround for https://go-review.googlesource.com/#/c/3821/
requestContext.getHeaders().add("Connection", "close");
}
});
}
extends JerseyDockerCmdExecFactory {
private CopyToContainerCmdExec createCopyToContainerCmdExec() {
return new CopyToContainerCmdExec(getBaseResource(), getDockerClientConfig());

View File

@@ -1,15 +1,10 @@
<configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>
<logger name="com.github.dockerjava.core.command" level="DEBUG"/>
<root level="INFO">
<appender-ref ref="STDOUT" />
</root>
</configuration>