private String stringRepresentation(DockerClientConfig config) { if (config == null) { return ""; } return " dockerHost=" + config.getDockerHost() + "\n" + " apiVersion='" + config.getApiVersion() + "'\n" + " registryUrl='" + config.getRegistryUrl() + "'\n" + " registryUsername='" + config.getRegistryUsername() + "'\n" + " registryPassword='" + config.getRegistryPassword() + "'\n" + " registryEmail='" + config.getRegistryEmail() + "'\n" + " dockerConfig='" + config.toString() + "'\n"; } }
private SslHandler initSsl(DockerClientConfig dockerClientConfig) { SslHandler ssl = null; try { String host = dockerClientConfig.getDockerHost().getHost(); int port = dockerClientConfig.getDockerHost().getPort(); final SSLConfig sslConfig = dockerClientConfig.getSSLConfig(); if (sslConfig != null && sslConfig.getSSLContext() != null) { SSLEngine engine = sslConfig.getSSLContext().createSSLEngine(host, port); engine.setUseClientMode(true); engine.setSSLParameters(enableHostNameVerification(engine.getSSLParameters())); // in the future we may use HostnameVerifier like here: // https://github.com/AsyncHttpClient/async-http-client/blob/1.8.x/src/main/java/com/ning/http/client/providers/netty/NettyConnectListener.java#L76 ssl = new SslHandler(engine); } } catch (Exception e) { throw new RuntimeException(e); } return ssl; } }
@Override public PushImageCmd pushImageCmd(Identifier identifier) { PushImageCmd cmd = pushImageCmd(identifier.repository.name); if (identifier.tag.isPresent()) { cmd.withTag(identifier.tag.get()); } AuthConfig cfg = dockerClientConfig.effectiveAuthConfig(identifier.repository.name); if (cfg != null) { cmd.withAuthConfig(cfg); } return cmd; }
@Override public AuthConfig authConfig() { checkNotNull(dockerClientConfig.getRegistryUsername(), "Configured username is null."); checkNotNull(dockerClientConfig.getRegistryUrl(), "Configured serverAddress is null."); return new AuthConfig() .withUsername(dockerClientConfig.getRegistryUsername()) .withPassword(dockerClientConfig.getRegistryPassword()) .withEmail(dockerClientConfig.getRegistryEmail()) .withRegistryAddress(dockerClientConfig.getRegistryUrl()); }
@Override public void init(DockerClientConfig dockerClientConfig) { super.init(dockerClientConfig); bootstrap = new Bootstrap(); String scheme = dockerClientConfig.getDockerHost().getScheme(); String host = ""; if ("unix".equals(scheme)) { nettyInitializer = new UnixDomainSocketInitializer(); host = "DUMMY"; } else if ("tcp".equals(scheme)) { nettyInitializer = new InetSocketInitializer(); host = dockerClientConfig.getDockerHost().getHost() + ":" + Integer.toString(dockerClientConfig.getDockerHost().getPort()); } eventLoopGroup = nettyInitializer.init(bootstrap, dockerClientConfig); baseResource = new NettyWebTarget(this::connect, host) .path(dockerClientConfig.getApiVersion().asWebPathPart()); }
@Override protected boolean isApplicable() { return "tcp".equalsIgnoreCase(config.getDockerHost().getScheme()) || SystemUtils.IS_OS_LINUX; }
URI originalUri = dockerClientConfig.getDockerHost(); final SSLConfig sslConfig = dockerClientConfig.getSSLConfig(); if (sslConfig != null) { sslContext = sslConfig.getSSLContext(); baseResource = client.target(sanitizeUrl(originalUri).toString()).path(dockerClientConfig.getApiVersion().asWebPathPart());
this.vertx = vertx; DockerClientConfig.DockerClientConfigBuilder builder = DockerClientConfig.createDefaultConfigBuilder(); String dockerCertPath = configuration.getString("docker-cert-path"); String dockerCfgPath = configuration.getString("docker-cfg-path"); if (config.getDockerHost().getScheme().equalsIgnoreCase("unix")) { try { this.host = InetAddress.getLocalHost().getHostAddress(); this.host = config.getDockerHost().getHost();
@Nonnull protected String registryConfigs(@Nonnull AuthConfigurations authConfigs) { try { final String json; final ObjectMapper objectMapper = new ObjectMapper(); final RemoteApiVersion apiVersion = dockerClientConfig.getApiVersion(); if (apiVersion.equals(UNKNOWN_VERSION)) { ObjectNode rootNode = objectMapper.valueToTree(authConfigs.getConfigs()); // all registries final ObjectNode authNodes = objectMapper.valueToTree(authConfigs); // wrapped in "configs":{} rootNode.setAll(authNodes); // merge 2 variants json = rootNode.toString(); } else if (apiVersion.isGreaterOrEqual(VERSION_1_19)) { json = objectMapper.writeValueAsString(authConfigs.getConfigs()); } else { json = objectMapper.writeValueAsString(authConfigs); } return BaseEncoding.base64Url().encode(json.getBytes()); } catch (IOException e) { throw new RuntimeException(e); } }
@Override public void setIaasProperties(Map<String, String> iaasProperties) throws IaasException { this.iaasProperties = iaasProperties; if((this.machineImageId = iaasProperties.get(DockerConstants.IMAGE_ID)) == null) { throw new IaasException(DockerConstants.IMAGE_ID + " is missing!"); } String endpoint = iaasProperties.get(DockerConstants.ENDPOINT); DockerClientConfigBuilder config = DockerClientConfig.createDefaultConfigBuilder(); if(endpoint != null) config.withUri(endpoint); String username = iaasProperties.get(DockerConstants.USER); if(username != null) { String password = iaasProperties.get(DockerConstants.PASSWORD); if(password == null) password = ""; String email = iaasProperties.get(DockerConstants.EMAIL); if(email == null) email = ""; config.withUsername(username); config.withPassword(password); config.withEmail(email); } this.docker = new DockerClientImpl(config.build()); }
@java.lang.SuppressWarnings("all") public com.github.dockerjava.core.SSLConfig getSSLConfig() { return this.dockerClientConfig.getSSLConfig(); } }
@java.lang.SuppressWarnings("all") public java.lang.String getRegistryPassword() { return this.delegate.getRegistryPassword(); }
@java.lang.SuppressWarnings("all") public java.lang.String getRegistryUrl() { return this.delegate.getRegistryUrl(); }
@java.lang.SuppressWarnings("all") public java.lang.String getRegistryEmail() { return this.dockerClientConfig.getRegistryEmail(); }
@java.lang.SuppressWarnings("all") public java.lang.String getRegistryUsername() { return this.delegate.getRegistryUsername(); }
protected AuthConfigurations getBuildAuthConfigs() { return dockerClientConfig.getAuthConfigurations(); }
@Override public AuthConfig authConfig() { checkNotNull(dockerClientConfig.getRegistryUsername(), "Configured username is null."); checkNotNull(dockerClientConfig.getRegistryUrl(), "Configured serverAddress is null."); return new AuthConfig() .withUsername(dockerClientConfig.getRegistryUsername()) .withPassword(dockerClientConfig.getRegistryPassword()) .withEmail(dockerClientConfig.getRegistryEmail()) .withRegistryAddress(dockerClientConfig.getRegistryUrl()); }
public static String getDockerHostIpAddress(DockerClientConfig config) { switch (config.getDockerHost().getScheme()) { case "http": case "https": case "tcp": return config.getDockerHost().getHost(); case "unix": case "npipe": if (IN_A_CONTAINER) { return getDefaultGateway().orElse("localhost"); } return "localhost"; default: return null; } } }
@Override public void init(DockerClientConfig dockerClientConfig) { super.init(dockerClientConfig); bootstrap = new Bootstrap(); String scheme = dockerClientConfig.getDockerHost().getScheme(); String host = ""; if ("unix".equals(scheme)) { nettyInitializer = new UnixDomainSocketInitializer(); host = "DUMMY"; } else if ("tcp".equals(scheme)) { nettyInitializer = new InetSocketInitializer(); host = dockerClientConfig.getDockerHost().getHost() + ":" + Integer.toString(dockerClientConfig.getDockerHost().getPort()); } eventLoopGroup = nettyInitializer.init(bootstrap, dockerClientConfig); baseResource = new NettyWebTarget(channelProvider, host).path(dockerClientConfig.getApiVersion().asWebPathPart()); }
URI originalUri = dockerClientConfig.getDockerHost(); final SSLConfig sslConfig = dockerClientConfig.getSSLConfig(); if (sslConfig != null) { sslContext = sslConfig.getSSLContext(); baseResource = client.target(sanitizeUrl(originalUri).toString()).path(dockerClientConfig.getApiVersion().asWebPathPart());