@Provides @Singleton public DockerClient providesDockerClient(SingularityExecutorConfiguration configuration) { Builder dockerClientBuilder = DefaultDockerClient.builder() .uri(URI.create("unix://localhost/var/run/docker.sock")) .connectionPoolSize(configuration.getDockerClientConnectionPoolSize()); if(configuration.getDockerAuthConfig().isPresent()) { SingularityExecutorDockerAuthConfig authConfig = configuration.getDockerAuthConfig().get(); if(authConfig.isFromDockerConfig()) { try { dockerClientBuilder.registryAuth(RegistryAuth.fromDockerConfig().build()); } catch(IOException e) { throw Throwables.propagate(e); } } else { dockerClientBuilder.registryAuth(RegistryAuth.builder() .email(authConfig.getEmail()) .username(authConfig.getUsername()) .password(authConfig.getPassword()) .serverAddress(authConfig.getServerAddress()) .build()); } } return dockerClientBuilder.build(); }
protected static DockerClient createDockerClient(DockerClientConfig config) { final RegistryAuth registryAuth = getRegistryAuth(config); try { if (registryAuth != null) { return DefaultDockerClient.fromEnv().registryAuth(registryAuth).build(); } else { return DefaultDockerClient.fromEnv().build(); } } catch (DockerCertificateException e) { throw new RuntimeException(e); } }
public DefaultDockerClient build() { if (dockerAuth && registryAuthSupplier == null && registryAuth == null) { try { registryAuth(RegistryAuth.fromDockerConfig().build()); } catch (IOException e) { log.warn("Unable to use Docker auth info", e); } } // read the docker config file for auth info if nothing else was specified if (registryAuthSupplier == null) { registryAuthSupplier(new ConfigFileRegistryAuthSupplier()); } return new DefaultDockerClient(this); } }