本文整理汇总了Java中com.github.dockerjava.core.command.WaitContainerResultCallback类的典型用法代码示例。如果您正苦于以下问题:Java WaitContainerResultCallback类的具体用法?Java WaitContainerResultCallback怎么用?Java WaitContainerResultCallback使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
WaitContainerResultCallback类属于com.github.dockerjava.core.command包,在下文中一共展示了WaitContainerResultCallback类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: stopAndRemoveContainer
import com.github.dockerjava.core.command.WaitContainerResultCallback; //导入依赖的package包/类
private void stopAndRemoveContainer(@NonNull final DockerClient _dockerClient,
@NonNull final CreateContainerResponse _container) {
_dockerClient
.stopContainerCmd(_container.getId())
.withTimeout(0)
.exec();
try {
_dockerClient
.waitContainerCmd(_container.getId())
.exec(new WaitContainerResultCallback())
.awaitCompletion();
} catch (InterruptedException e) {
// ignore
}
_dockerClient
.removeContainerCmd(_container.getId())
.exec();
}
示例2: testWaitContainerTimeout
import com.github.dockerjava.core.command.WaitContainerResultCallback; //导入依赖的package包/类
@Test
public void testWaitContainerTimeout() throws Exception {
CreateContainerResponse container = dockerRule.getClient().createContainerCmd("busybox").withCmd("sleep", "10").exec();
LOG.info("Created container: {}", container.toString());
assertThat(container.getId(), not(isEmptyString()));
dockerRule.getClient().startContainerCmd(container.getId()).exec();
WaitContainerResultCallback callback = dockerRule.getClient().waitContainerCmd(container.getId()).exec(
new WaitContainerResultCallback());
try {
callback.awaitStatusCode(100, TimeUnit.MILLISECONDS);
throw new AssertionError("Should throw exception on timeout.");
} catch (DockerClientException e) {
LOG.info(e.getMessage());
}
}
示例3: testContainerDiff
import com.github.dockerjava.core.command.WaitContainerResultCallback; //导入依赖的package包/类
@Test
public void testContainerDiff() throws DockerException {
CreateContainerResponse container = dockerRule.getClient().createContainerCmd(DEFAULT_IMAGE).withCmd("touch", "/test").exec();
LOG.info("Created container: {}", container.toString());
assertThat(container.getId(), not(isEmptyString()));
dockerRule.getClient().startContainerCmd(container.getId()).exec();
int exitCode = dockerRule.getClient().waitContainerCmd(container.getId()).exec(new WaitContainerResultCallback())
.awaitStatusCode();
assertThat(exitCode, equalTo(0));
List<ChangeLog> filesystemDiff = dockerRule.getClient().containerDiffCmd(container.getId()).exec();
LOG.info("Container DIFF: {}", filesystemDiff.toString());
assertThat(filesystemDiff.size(), equalTo(1));
ChangeLog testChangeLog = selectUnique(filesystemDiff, hasField("path", equalTo("/test")));
assertThat(testChangeLog, hasField("path", equalTo("/test")));
assertThat(testChangeLog, hasField("kind", equalTo(1)));
}
示例4: setUp
import com.github.dockerjava.core.command.WaitContainerResultCallback; //导入依赖的package包/类
@Before
public void setUp()
throws Exception {
super.setUp();
initTestContainer();
dockerClient.startContainerCmd(testContainerId).exec();
dockerClient
.waitContainerCmd(testContainerId)
.exec(new WaitContainerResultCallback())
.awaitStatusCode(1000, TimeUnit.SECONDS);
stdOutput = stdOutBuff.toString();
}
示例5: setUp
import com.github.dockerjava.core.command.WaitContainerResultCallback; //导入依赖的package包/类
@Before
public void setUp()
throws Exception {
configArgs.add("--storage-net-http-namespace=ns1");
configArgs.add("--storage-mock-capacity=10000000");
super.setUp();
if(storageType.equals(StorageType.FS)) {
itemOutputPath = Paths.get(
Paths.get(PathUtil.getBaseDir()).getParent().toString(), stepId
).toString();
EnvUtil.set("ITEM_OUTPUT_PATH", itemOutputPath);
} else {
itemOutputPath = "/default";
EnvUtil.set("ITEM_OUTPUT_PATH", stepId);
}
configArgs.add("--item-output-path=" + itemOutputPath);
initTestContainer();
duration = System.currentTimeMillis();
dockerClient.startContainerCmd(testContainerId).exec();
containerExitCode = dockerClient
.waitContainerCmd(testContainerId)
.exec(new WaitContainerResultCallback())
.awaitStatusCode(2, TimeUnit.MINUTES);
duration = System.currentTimeMillis() - duration;
stdOutput = stdOutBuff.toString();
}
示例6: setUp
import com.github.dockerjava.core.command.WaitContainerResultCallback; //导入依赖的package包/类
@Before
public void setUp()
throws Exception {
configArgs.add("--test-step-limit-count=" + COUNT_LIMIT);
super.setUp();
switch(storageType) {
case FS:
itemOutputPath = Paths.get(
Paths.get(PathUtil.getBaseDir()).getParent().toString(), stepId
).toString();
configArgs.add("--item-output-path=" + itemOutputPath);
break;
case SWIFT:
configArgs.add("--storage-net-http-namespace=ns1");
break;
}
initTestContainer();
duration = System.currentTimeMillis();
dockerClient.startContainerCmd(testContainerId).exec();
containerExitCode = dockerClient
.waitContainerCmd(testContainerId)
.exec(new WaitContainerResultCallback())
.awaitStatusCode(1000, TimeUnit.SECONDS);
duration = System.currentTimeMillis() - duration;
stdOutput = stdOutBuff.toString();
}
示例7: setUp
import com.github.dockerjava.core.command.WaitContainerResultCallback; //导入依赖的package包/类
@Before @Override
public void setUp()
throws Exception {
super.setUp();
switch(storageType) {
case FS:
final Path containerItemOutputPath = Paths.get(CONTAINER_SHARE_PATH, stepId);
configArgs.add("--item-output-path=" + containerItemOutputPath.toString());
break;
case SWIFT:
configArgs.add("--storage-net-http-namespace=ns1");
break;
}
EnvUtil.set("ITEMS_FILE_0", stepId + "_0.csv");
EnvUtil.set("ITEMS_FILE_1", stepId + "_1.csv");
EnvUtil.set("ITEMS_FILE_2", stepId + "_2.csv");
EnvUtil.set("FIRST_STEP_DURATION_LIMIT", Integer.toString(FIRST_STEP_DURATION_LIMIT));
EnvUtil.set("UPDATE_RANDOM_RANGES_COUNT", Integer.toString(UPDATE_RANDOM_RANGES_COUNT));
initTestContainer();
dockerClient.startContainerCmd(testContainerId).exec();
containerExitCode = dockerClient
.waitContainerCmd(testContainerId)
.exec(new WaitContainerResultCallback())
.awaitStatusCode(300, TimeUnit.SECONDS);
stdOutput = stdOutBuff.toString();
}
示例8: setUp
import com.github.dockerjava.core.command.WaitContainerResultCallback; //导入依赖的package包/类
@Before @Override
public void setUp()
throws Exception {
super.setUp();
switch(storageType) {
case FS:
final Path containerItemOutputPath = Paths.get(CONTAINER_SHARE_PATH, stepId);
configArgs.add("--item-output-path=" + containerItemOutputPath.toString());
break;
case SWIFT:
configArgs.add("--storage-net-http-namespace=ns1");
break;
}
EnvUtil.set("ITEMS_FILE_0", stepId + "_0.csv");
EnvUtil.set("ITEMS_FILE_1", stepId + "_1.csv");
EnvUtil.set("FIRST_STEP_COUNT_LIMIT", Integer.toString(FIRST_STEP_COUNT_LIMIT));
initTestContainer();
dockerClient.startContainerCmd(testContainerId).exec();
containerExitCode = dockerClient
.waitContainerCmd(testContainerId)
.exec(new WaitContainerResultCallback())
.awaitStatusCode(300, TimeUnit.SECONDS);
stdOutput = stdOutBuff.toString();
}
示例9: DockerizedProcess
import com.github.dockerjava.core.command.WaitContainerResultCallback; //导入依赖的package包/类
public DockerizedProcess(final DockerClient dockerClient, final String containerId, final Closure afterContainerStop) throws Exception
{
this.dockerClient = dockerClient;
this.containerId = containerId;
this.afterContainerStop = afterContainerStop;
attachStreams();
dockerClient.waitContainerCmd(containerId).exec(new WaitContainerResultCallback() {
@Override public void onNext(WaitResponse waitResponse)
{
exitCode.set(waitResponse.getStatusCode());
try
{
attachContainerResultCallback.close();
attachContainerResultCallback.awaitCompletion();
stdOutWriteStream.close();
stdErrWriteStream.close();
} catch (Exception e) {
LOGGER.debug("Error by detaching streams", e);
} finally
{
finished.countDown();
invokeIfNotNull(afterContainerStop, containerId, dockerClient);
}
}
});
}
示例10: testWaitNonExistingContainer
import com.github.dockerjava.core.command.WaitContainerResultCallback; //导入依赖的package包/类
@Test(expected = NotFoundException.class)
public void testWaitNonExistingContainer() throws DockerException {
WaitContainerResultCallback callback = new WaitContainerResultCallback() {
public void onNext(WaitResponse waitResponse) {
throw new AssertionError("expected NotFoundException");
}
};
dockerRule.getClient().waitContainerCmd("non-existing").exec(callback).awaitStatusCode();
}
示例11: copyFileWithExecutePermission
import com.github.dockerjava.core.command.WaitContainerResultCallback; //导入依赖的package包/类
@Test
public void copyFileWithExecutePermission() throws Exception {
// create script file, add permission to execute
Path scriptPath = Files.createTempFile("run", ".sh");
boolean executable = scriptPath.toFile().setExecutable(true, false);
if (!executable){
throw new Exception("Execute permission on file not set!");
}
String snippet = "Running script with execute permission.";
String scriptTextStr = "#!/bin/sh\necho \"" + snippet + "\"";
// write content for created script
Files.write(scriptPath, scriptTextStr.getBytes());
// create a test container which starts and waits 3 seconds for the
// script to be copied to the container's home dir and then executes it
String containerCmd = "sleep 3; /home/" + scriptPath.getFileName().toString();
CreateContainerResponse container = dockerRule.getClient().createContainerCmd("busybox")
.withName("copyFileWithExecutivePerm" + dockerRule.getKind())
.withCmd("/bin/sh", "-c", containerCmd)
.exec();
// start the container
dockerRule.getClient().startContainerCmd(container.getId()).exec();
// copy script to container home dir
dockerRule.getClient().copyArchiveToContainerCmd(container.getId())
.withRemotePath("/home")
.withHostResource(scriptPath.toString())
.exec();
// await exid code
int exitCode = dockerRule.getClient().waitContainerCmd(container.getId())
.exec(new WaitContainerResultCallback())
.awaitStatusCode();
// check result
assertThat(exitCode, equalTo(0));
}
示例12: commitWithLabels
import com.github.dockerjava.core.command.WaitContainerResultCallback; //导入依赖的package包/类
@Test
public void commitWithLabels() throws DockerException {
CreateContainerResponse container = dockerRule.getClient().createContainerCmd("busybox")
.withCmd("touch", "/test")
.exec();
LOG.info("Created container: {}", container.toString());
assertThat(container.getId(), not(isEmptyString()));
dockerRule.getClient().startContainerCmd(container.getId()).exec();
Integer status = dockerRule.getClient().waitContainerCmd(container.getId())
.exec(new WaitContainerResultCallback())
.awaitStatusCode();
assertThat(status, is(0));
LOG.info("Committing container: {}", container.toString());
Map<String, String> labels = ImmutableMap.of("label1", "abc", "label2", "123");
String imageId = dockerRule.getClient().commitCmd(container.getId())
.withLabels(labels)
.exec();
InspectImageResponse inspectImageResponse = dockerRule.getClient().inspectImageCmd(imageId).exec();
LOG.info("Image Inspect: {}", inspectImageResponse.toString());
//use config here since containerConfig contains the configuration of the container which was
//committed to the container
//https://stackoverflow.com/questions/36216220/what-is-different-of-config-and-containerconfig-of-docker-inspect
Map<String, String> responseLabels = inspectImageResponse.getConfig().getLabels();
//swarm will attach additional labels here
assertThat(responseLabels.size(), greaterThanOrEqualTo(2));
assertThat(responseLabels.get("label1"), equalTo("abc"));
assertThat(responseLabels.get("label2"), equalTo("123"));
}
示例13: asyncLogContainerWithSince
import com.github.dockerjava.core.command.WaitContainerResultCallback; //导入依赖的package包/类
@Test
public void asyncLogContainerWithSince() throws Exception {
String snippet = "hello world";
CreateContainerResponse container = dockerRule.getClient().createContainerCmd("busybox")
.withCmd("/bin/echo", snippet)
.exec();
LOG.info("Created container: {}", container.toString());
assertThat(container.getId(), not(isEmptyString()));
int timestamp = (int) (System.currentTimeMillis() / 1000);
dockerRule.getClient().startContainerCmd(container.getId()).exec();
int exitCode = dockerRule.getClient().waitContainerCmd(container.getId())
.exec(new WaitContainerResultCallback())
.awaitStatusCode();
assertThat(exitCode, equalTo(0));
LogContainerTestCallback loggingCallback = new LogContainerTestCallback();
dockerRule.getClient().logContainerCmd(container.getId())
.withStdErr(true)
.withStdOut(true)
.withSince(timestamp)
.exec(loggingCallback);
loggingCallback.awaitCompletion();
assertThat(loggingCallback.toString(), containsString(snippet));
}
示例14: testExitedFilter
import com.github.dockerjava.core.command.WaitContainerResultCallback; //导入依赖的package包/类
@Test
public void testExitedFilter() throws Exception {
dockerRule.getClient().createContainerCmd(DEFAULT_IMAGE)
.withLabels(testLabel)
.exec();
String id = dockerRule.getClient().createContainerCmd(DEFAULT_IMAGE)
.withLabels(testLabel)
.withCmd("sh", "-c", "exit 42")
.exec()
.getId();
dockerRule.getClient().startContainerCmd(id).exec();
Integer status = dockerRule.getClient().waitContainerCmd(id).exec(new WaitContainerResultCallback())
.awaitStatusCode();
assertThat(status, is(42));
List<Container> filteredContainers = dockerRule.getClient().listContainersCmd()
.withLabelFilter(testLabel)
.withShowAll(true)
.withExitedFilter(42)
.exec();
assertThat(filteredContainers.size(), is(1));
assertThat(filteredContainers.get(0).getId(), is(id));
}
示例15: execBuild
import com.github.dockerjava.core.command.WaitContainerResultCallback; //导入依赖的package包/类
private String execBuild(BuildImageCmd buildImageCmd) throws Exception {
String imageId = buildImageCmd.withNoCache(true).exec(new BuildImageResultCallback()).awaitImageId();
// Create container based on image
CreateContainerResponse container = dockerRule.getClient().createContainerCmd(imageId).exec();
LOG.info("Created container: {}", container.toString());
assertThat(container.getId(), not(isEmptyString()));
dockerRule.getClient().startContainerCmd(container.getId()).exec();
dockerRule.getClient().waitContainerCmd(container.getId()).exec(new WaitContainerResultCallback()).awaitStatusCode();
return dockerRule.containerLog(container.getId());
}