com.palantir.docker.compose.DockerComposeRule类的使用及代码示例

x33g5p2x  于2022-01-18 转载在 其他  
字(9.3k)|赞(0)|评价(0)|浏览(145)

本文整理了Java中com.palantir.docker.compose.DockerComposeRule类的一些代码示例,展示了DockerComposeRule类的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。DockerComposeRule类的具体详情如下:
包路径:com.palantir.docker.compose.DockerComposeRule
类名称: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();
}

相关文章