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:
@@ -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());
|
||||
|
||||
@@ -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>
|
||||
|
||||
Reference in New Issue
Block a user