@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(); }
private static RegistryAuth getRegistryAuth(final DockerClientConfig config) { try { final String[] segments = config.getImageName().split("\\/"); if (segments.length > 0) { try { return RegistryAuth.fromDockerConfig(segments[0]).build(); } catch (IOException e) { return null; } } } catch (Exception ex) { return null; } return null; } }
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); } }