本文整理了Java中com.palantir.docker.compose.DockerComposeRule
类的一些代码示例,展示了DockerComposeRule
类的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。DockerComposeRule
类的具体详情如下:
包路径:com.palantir.docker.compose.DockerComposeRule
类名称:DockerComposeRule
暂无
代码示例来源:origin: palantir/atlasdb
public com.palantir.docker.compose.connection.Container getContainer(String containerName) {
synchronized (Containers.class) {
return dockerComposeRule.containers().container(containerName);
}
}
代码示例来源:origin: palantir/atlasdb
public void close() {
if (docker != null) {
docker.after();
}
}
}
代码示例来源:origin: palantir/atlasdb
private static InetSocketAddress connect(DockerComposeRule docker, int dbPort) {
try {
if (docker == null) {
throw new IllegalStateException("Docker compose rule cannot be run, is null.");
} else {
docker.before();
return InetSocketAddress.createUnresolved(
docker.containers().ip(),
docker.hostNetworkedPort(dbPort).getExternalPort());
}
} catch (IOException | InterruptedException | IllegalStateException e) {
throw new RuntimeException("Could not run docker compose rule.", e);
}
}
代码示例来源:origin: palantir/atlasdb
private void setupDockerComposeRule() throws InterruptedException, IOException {
Set<String> containerDockerComposeFiles = containersToStart.stream()
.map(Container::getDockerComposeFile)
.map(dockerComposeFilesToTemporaryCopies::getUnchecked)
.collect(Collectors.toSet());
Map<String, String> environment = containersToStart.stream()
.flatMap(container -> container.getEnvironment().entrySet().stream())
.collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue, (fst, snd) -> snd));
DockerMachine machine = DockerMachine.localMachine()
.withEnvironment(environment)
.build();
dockerComposeRule = DockerComposeRule.builder()
.files(DockerComposeFiles.from(containerDockerComposeFiles.toArray(new String[0])))
.projectName(PROJECT_NAME)
.machine(machine)
.logCollector(currentLogCollector)
.shutdownStrategy(ShutdownStrategy.AGGRESSIVE_WITH_NETWORK_CLEANUP)
.build();
dockerComposeRule.before();
}
代码示例来源:origin: com.palantir.docker.compose/docker-compose-rule-junit4
@Override
public void before() throws IOException, InterruptedException {
log.debug("Starting docker-compose cluster");
dockerCompose().build();
DockerCompose upDockerCompose = dockerCompose();
if (removeConflictingContainersOnStartup()) {
upDockerCompose = new ConflictingContainerRemovingDockerCompose(upDockerCompose, docker());
}
upDockerCompose.up();
logCollector().startCollecting(dockerCompose());
log.debug("Waiting for services");
clusterWaits().forEach(clusterWait -> clusterWait.waitUntilReady(containers()));
log.debug("docker-compose cluster started");
}
代码示例来源:origin: palantir/docker-compose-rule
@Test
public void by_default_existing_containers_should_be_removed_silently() throws IOException, InterruptedException {
DockerComposeRule composition = DockerComposeRule.builder()
.file(DOCKER_COMPOSE_YAML_PATH)
.retryAttempts(0)
.shutdownStrategy(AGGRESSIVE)
.build();
composition.before();
composition.before();
composition.after();
}
代码示例来源:origin: palantir/docker-compose-rule
@Override
public void before() throws IOException, InterruptedException {
log.debug("Starting docker-compose cluster");
if (pullOnStartup()) {
dockerCompose().pull();
}
dockerCompose().build();
DockerCompose upDockerCompose = dockerCompose();
if (removeConflictingContainersOnStartup()) {
upDockerCompose = new ConflictingContainerRemovingDockerCompose(upDockerCompose, docker());
}
upDockerCompose.up();
logCollector().startCollecting(dockerCompose());
log.debug("Waiting for services");
new ClusterWait(ClusterHealthCheck.nativeHealthChecks(), nativeServiceHealthCheckTimeout())
.waitUntilReady(containers());
clusterWaits().forEach(clusterWait -> clusterWait.waitUntilReady(containers()));
log.debug("docker-compose cluster started");
}
代码示例来源:origin: palantir/docker-compose-rule
assumeThat("docker-compose version", DockerCompose.version(), new GreaterOrEqual<>(Version.forIntegers(1, 10, 0)));
rule = DockerComposeRule.builder()
.file("src/test/resources/native-healthcheck.yaml")
.build();
Future<?> beforeFuture = pool.submit(() -> {
rule.before();
return null;
});
Container container = rule.containers().container("dummy");
await().until(container::state, Matchers.equalTo(State.UNHEALTHY));
rule.dockerCompose().exec(noOptions(), "dummy", arguments("touch", "healthy"));
await().until(container::state, Matchers.equalTo(State.HEALTHY));
getUninterruptibly(beforeFuture, 1, TimeUnit.SECONDS);
代码示例来源:origin: palantir/docker-compose-rule
@Test
public void shut_down_multiple_containers_immediately() throws Exception {
DockerComposeRule rule = DockerComposeRule.builder()
.file("src/test/resources/shutdown-strategy.yaml")
.logCollector(new DoNothingLogCollector())
.retryAttempts(0)
.shutdownStrategy(ShutdownStrategy.AGGRESSIVE)
.build();
assertThat(rule.dockerCompose().ps(), is(TestContainerNames.of()));
rule.before();
assertThat(rule.dockerCompose().ps().size(), is(2));
rule.after();
assertThat(rule.dockerCompose().ps(), is(TestContainerNames.of()));
}
代码示例来源:origin: palantir/docker-compose-rule
@Test public void
can_access_host_networked_ports() throws Exception {
// On linux the docker host is running on localhost, so host ports are accessible through localhost.
// On Windows and Mac however, docker is being run in a linux VM. As such the docker host is the running
// VM, not localhost, and the ports are inaccessible from outside the VM.
// As such, this test will only run on linux.
assumeTrue("Host ports are only accessible on linux", SystemUtils.IS_OS_LINUX);
DockerComposeRule docker = DockerComposeRule.builder()
.file("src/test/resources/host-networked-docker-compose.yaml")
.waitingForHostNetworkedPort(5432, toBeOpen())
.build();
try {
docker.before();
assertThat(docker.hostNetworkedPort(5432).getInternalPort(), is(5432));
assertThat(docker.hostNetworkedPort(5432).getExternalPort(), is(5432));
} finally {
docker.after();
}
}
}
代码示例来源:origin: com.palantir.docker.compose/docker-compose-rule
public DockerCompositionBuilder() {
this.builder = DockerComposeRule.builder();
}
代码示例来源:origin: palantir/docker-compose-rule
@Override
public void after() {
try {
shutdownStrategy().shutdown(this.dockerCompose(), this.docker());
logCollector().stopCollecting();
} catch (IOException | InterruptedException e) {
throw new RuntimeException("Error cleaning up docker compose cluster", e);
}
}
代码示例来源:origin: palantir/docker-compose-rule
@Test
public void after_test_is_executed_the_launched_postgres_container_is_no_longer_listening() {
docker.after();
forEachContainer(container -> {
assertThat(docker.containers().container(container).port(5432).isListeningNow(), is(false));
});
}
代码示例来源:origin: palantir/atlasdb
@Override
protected void before() throws Throwable {
try {
configFile = temporaryFolder.newFile("atlasdb-ete.yml");
updateClientConfig(EMBEDDED_CONFIG);
} catch (IOException e) {
throw Throwables.propagate(e);
}
DockerMachine dockerMachine = createDockerMachine();
dockerComposeRule = DockerComposeRule.builder()
.machine(dockerMachine)
.file("docker-compose.timelock-migration.cassandra.yml")
.waitingForService("cassandra", HealthChecks.toHaveAllPortsOpen())
.saveLogsTo(LogDirectory.circleAwareLogDirectory(TimeLockMigrationEteTest.class.getSimpleName()))
.addClusterWait(new ClusterWait(ClusterHealthCheck.nativeHealthChecks(), WAIT_TIMEOUT))
.build();
dockerProxyRule = DockerProxyRule.fromProjectName(
dockerComposeRule.projectName(),
TimeLockMigrationEteTest.class);
dockerComposeRule.before();
dockerProxyRule.before();
}
代码示例来源:origin: palantir/docker-compose-rule
@Test
public void shut_down_multiple_containers_immediately() throws Exception {
assertThat(rule.dockerCompose().ps(), is(TestContainerNames.of()));
rule.before();
assertThat(rule.dockerCompose().ps().size(), is(2));
rule.after();
assertThat(rule.dockerCompose().ps(), is(TestContainerNames.of()));
}
代码示例来源:origin: palantir/docker-compose-rule
@Test
public void clean_up_created_networks_when_shutting_down() throws Exception {
Set<String> networksBeforeRun = parseLinesFromOutputString(rule.docker().listNetworks());
rule.before();
assertThat(parseLinesFromOutputString(rule.docker().listNetworks()), is(not(networksBeforeRun)));
rule.after();
assertThat(parseLinesFromOutputString(rule.docker().listNetworks()), is(networksBeforeRun));
}
代码示例来源:origin: com.palantir.docker.compose/docker-compose-rule
@Value.Default
public DockerComposeExecutable dockerComposeExecutable() {
return DockerComposeExecutable.builder()
.dockerComposeFiles(files())
.dockerConfiguration(machine())
.projectName(projectName())
.build();
}
代码示例来源:origin: palantir/docker-compose-rule
@Test
public void logs_can_be_saved_to_a_directory() throws IOException, InterruptedException {
try {
dockerComposeRule.before();
} finally {
dockerComposeRule.after();
}
assertThat(new File(logFolder.getRoot(), "db.log"), is(fileWithConents(matchingPattern(
".*Attaching to \\w+_db_1.*server started.*"))));
assertThat(new File(logFolder.getRoot(), "db2.log"), is(fileWithConents(matchingPattern(
".*Attaching to \\w+_db2_1.*server started.*"))));
}
代码示例来源:origin: com.palantir.docker.compose/docker-compose-rule
@Override
public void before() throws IOException, InterruptedException {
rule.before();
}
代码示例来源:origin: com.palantir.docker.compose/docker-compose-rule
@Override
public void shutdown(DockerComposeRule rule) throws IOException, InterruptedException {
log.debug("Killing docker-compose cluster");
rule.dockerCompose().down();
rule.dockerCompose().kill();
rule.dockerCompose().rm();
}
内容来源于网络,如有侵权,请联系作者删除!