@Nonnull private DockerClient openDockerClient() throws MojoExecutionException { final RegistryAuthSupplier authSupplier = createRegistryAuthSupplier(); try { return DefaultDockerClient.fromEnv() .readTimeoutMillis(readTimeoutMillis) .connectTimeoutMillis(connectTimeoutMillis) .registryAuthSupplier(authSupplier) .useProxy(useProxy) .build(); } catch (DockerCertificateException e) { throw new MojoExecutionException("Could not load Docker certificates", e); } }
private DockerClient createDockerClient(final AgentConfig config) throws IOException { final DefaultDockerClient.Builder builder = DefaultDockerClient.builder() .uri(config.getDockerHost().uri()); if (config.getConnectionPoolSize() != -1) { builder.connectionPoolSize(config.getConnectionPoolSize()); } if (!isNullOrEmpty(config.getDockerHost().dockerCertPath())) { final Path dockerCertPath = java.nio.file.Paths.get(config.getDockerHost().dockerCertPath()); final DockerCertificates dockerCertificates; try { dockerCertificates = new DockerCertificates(dockerCertPath); } catch (DockerCertificateException e) { throw new RuntimeException(e); } builder.dockerCertificates(dockerCertificates); } if (config.getGoogleCredentials() != null) { builder.registryAuthSupplier( ContainerRegistryAuthSupplier .forCredentials(config.getGoogleCredentials()) .build() ); } return new PollingDockerClient(builder); }
public DefaultDockerClient build() { // read the docker config file for auth info if nothing else was specified if (registryAuthSupplier == null) { registryAuthSupplier(new ConfigFileRegistryAuthSupplier()); } return new DefaultDockerClient(this); } }
final ExecCreateParam... params) throws DockerException, InterruptedException { final ContainerInfo containerInfo = inspectContainer(containerId); if (!containerInfo.state().running()) { throw new IllegalStateException("Container " + containerId + " is not running."); final WebTarget resource = resource().path("containers").path(containerId).path("exec"); return request(POST, ExecCreation.class, resource, resource.request(APPLICATION_JSON_TYPE), Entity.json(writer.toString())); } catch (DockerRequestException e) {
try { if (System.getProperty("os.name").toLowerCase().contains("mac")) { dockerClient = DefaultDockerClient.builder().uri(DefaultDockerClient.DEFAULT_UNIX_ENDPOINT).build(); Info info = dockerClient.info(); LOG.info("Connected to Docker Client Info: " + info); return dockerClient; dockerClient = DefaultDockerClient.fromEnv().build(); Info info = dockerClient.info(); LOG.info("Connected to Docker Client Info: " + info); return dockerClient; dockerClient = DefaultDockerClient.fromEnv().build(); Info info = dockerClient.info(); LOG.info("Connected to Docker Client Info: " + info); return dockerClient;
public static DockerClient buildClient(URI dockerHost, Path certificatesPath) { try { if (dockerHost == null) { logger.info("Configuring docker host from environment"); return DefaultDockerClient.fromEnv().build(); } else { logger.info("Configuring docker host from configuration"); DefaultDockerClient.Builder builder = DefaultDockerClient.builder().uri(dockerHost); if (certificatesPath != null) { builder.dockerCertificates(new DockerCertificates(certificatesPath)); } return builder.build(); } } catch (DockerCertificateException e) { logger.error("Could not read certificates", e); throw new IllegalArgumentException("Could not read certificates: " + e.getMessage()); } }
@Override public Statement apply(Statement statement, Description description) { try { DefaultDockerClient client = DefaultDockerClient.fromEnv() .connectTimeoutMillis(5000L) .readTimeoutMillis(20000L) .registryAuthSupplier(new FixedRegistryAuthSupplier()) .build(); client.ping(); client.pull(IMAGE); client.close(); } catch (Throwable t) { Assume.assumeNoException(t); } return wrappedRule.apply(statement, description); }
@Override protected void init() { String url = settings.get(DOCKER_URL); if (url.startsWith("unix://")) { client = new DefaultDockerClient(url); } else { client = DefaultDockerClient.builder().uri(url).build(); } }
.build(); ContainerCreation containerCreation = client.createContainer( containerConfig, containerName); String containerId = containerCreation.id(); client.startContainer(containerId); ContainerInfo containerInfo = client.inspectContainer(containerId); InetAddress containerAddress = InetAddresses.forString(containerInfo .networkSettings().ipAddress());
@Override public void pull(final String image, final RegistryAuth registryAuth) throws DockerException, InterruptedException { pull(image, registryAuth, new LoggingPullHandler(image)); }
@Override public LogStream attachContainer(final String containerId, final AttachParameter... params) throws DockerException, InterruptedException { final ContainerInfo containerInfo = inspectContainer(containerId); if (!containerInfo.state().running()) { throw new IllegalStateException("Container " + containerId + " is not running."); } WebTarget resource = noTimeoutResource().path("containers").path(containerId).path("attach"); for (final AttachParameter param : params) { resource = resource.queryParam(param.name().toLowerCase(Locale.ROOT), String.valueOf(true)); } return getLogStream(POST, resource, containerId); }
private RunningDockerInstance startContainer(String containerId, AliveStrategy upCheck) throws DockerException, InterruptedException { dockerClient.startContainer(containerId); ContainerInfo containerInfo = dockerClient.inspectContainer(containerId); RunningDockerInstance runningInstance = RunningDockerInstance.from(containerInfo, dockerClient); upCheck.waitUntilAlive(runningInstance); return runningInstance; }
@Override public ContainerCreation createContainer(final ContainerConfig config) throws DockerException, InterruptedException { return createContainer(config, null); }
private void checkContainerCreationState(String containerId) throws DockerException, InterruptedException { String error = docker.inspectContainer(containerId).state().error(); if (error != null && !error.equals("")) { throw new IllegalStateException("Container " + containerId + " creation failed:" + error); } }
try { if (System.getProperty("os.name").toLowerCase().contains("mac")) { dockerClient = DefaultDockerClient.builder().uri(DefaultDockerClient.DEFAULT_UNIX_ENDPOINT).build(); Info info = dockerClient.info(); LOG.info("Connected to Docker Client Info: " + info); return dockerClient; dockerClient = DefaultDockerClient.fromEnv().build(); Info info = dockerClient.info(); LOG.info("Connected to Docker Client Info: " + info); return dockerClient; dockerClient = DefaultDockerClient.fromEnv().build(); Info info = dockerClient.info(); LOG.info("Connected to Docker Client Info: " + info); return dockerClient;
public DockerService(Config config, InternalPreferences preferences) { this.config = config; this.preferences = preferences; dockerDefaultSocket = getConfig().getDockerDefaultSocket(); dockerWaitTimeoutSec = getConfig().getDockerWaitTimeoutSec(); dockerPollTimeMs = getConfig().getDockerPollTimeMs(); String dockerServerUrl = getConfig().getDockerServerUrl(); Builder dockerClientBuilder = null; if (dockerServerUrl.isEmpty()) { try { dockerClientBuilder = DefaultDockerClient.fromEnv(); } catch (DockerCertificateException e) { throw new SeleniumJupiterException(e); } } else { log.debug("Using Docker server URL {}", dockerServerUrl); dockerClientBuilder = DefaultDockerClient.builder() .uri(dockerServerUrl); } dockerClient = dockerClientBuilder.build(); }
@Override public Map<String, String> validateSettings(Map<String, String> settings) { Map<String, String> errors = new HashMap<>(); String url = settings.get(DOCKER_URL); logger().info("Testing docker container for url {}", url); try { DockerClient testClient; if (url.startsWith("unix://")) { testClient = new DefaultDockerClient(url); } else { testClient = DefaultDockerClient.builder().uri(settings.get(DOCKER_URL)).build(); } testClient.ping(); } catch (DockerException | InterruptedException | NullPointerException e) { errors.put("Connection error", "Impossible to connect to " + settings.get(DOCKER_URL)); } return errors; }
@Override public void pull(final String image, final ProgressHandler handler) throws DockerException, InterruptedException { pull(image, registryAuthSupplier.authFor(image), handler); }
final ExecCreateParam... params) throws DockerException, InterruptedException { final ContainerInfo containerInfo = inspectContainer(containerId); if (!containerInfo.state().running()) { throw new IllegalStateException("Container " + containerId + " is not running."); final WebTarget resource = resource().path("containers").path(containerId).path("exec"); return request(POST, ExecCreation.class, resource, resource.request(APPLICATION_JSON_TYPE), Entity.json(writer.toString())); } catch (DockerRequestException e) {
@Override public ContainerCreation createContainer(final ContainerConfig config) throws DockerException, InterruptedException { return createContainer(config, null); }