All Downloads are FREE. Search and download functionalities are using the official Maven repository.

de.gesellix.docker.engine.DockerEnv Maven / Gradle / Ivy

package de.gesellix.docker.engine;

import java.io.File;

/**
 * Configuration via environment variables should work like
 * described in the official cli docs.
 */
public class DockerEnv {

  private String dockerHost;

  private int defaultTlsPort = 2376;

  private String tlsVerify = System.getProperty("docker.tls.verify", System.getenv("DOCKER_TLS_VERIFY"));

  private String certPath = System.getProperty("docker.cert.path", System.getenv("DOCKER_CERT_PATH"));

  private String defaultCertPath = new File((String) System.getProperties().get("user.home"), ".docker").getAbsolutePath();

  // the v1 registry still seems to be valid for authentication.
  private final String indexUrl_v1 = "https://index.docker.io/v1/";
  private final String indexUrl_v2 = "https://registry-1.docker.io";

  private File configFile = new File(System.getProperty("user.home") + "/.docker", "config.json");

  private File legacyConfigFile = new File(System.getProperty("user.home"), ".dockercfg");

  private File dockerConfigFile = null;

  private String apiVersion = System.getProperty("docker.api.version", System.getenv("DOCKER_API_VERSION"));

  private String tmpdir = System.getProperty("docker.tmpdir", System.getenv("DOCKER_TMPDIR"));

  private String dockerContentTrust = System.getProperty("docker.content.trust", System.getenv("DOCKER_CONTENT_TRUST"));

  private String contentTrustServer = System.getProperty("docker.content.trust.server", System.getenv("DOCKER_CONTENT_TRUST_SERVER"));

  private String officialNotaryServer = "https://notary.docker.io";

  public DockerEnv() {
    this(getDockerHostOrDefault());
  }

  public DockerEnv(String dockerHost) {
    this.dockerHost = dockerHost;
  }

  public static String getDockerHostOrDefault() {
    String configuredDockerHost = System.getProperty("docker.host", System.getenv("DOCKER_HOST"));
    if (configuredDockerHost != null && !configuredDockerHost.isEmpty()) {
      return configuredDockerHost;
    }
    else {
      if (((String) System.getProperties().get("os.name")).toLowerCase().contains("windows")) {
        // default to non-tls http
        //return "tcp://localhost:2375"

        // or use a named pipe:
        return "npipe:////./pipe/docker_engine";
      }
      else {
        return "unix:///var/run/docker.sock";
      }
    }
  }

  public void setDockerConfigFile(File dockerConfigFile) {
    this.dockerConfigFile = dockerConfigFile;
  }

  public File getDockerConfigFile() {
    if (dockerConfigFile == null) {
      String dockerConfig = System.getProperty("docker.config", System.getenv("DOCKER_CONFIG"));
      if (dockerConfig != null && !dockerConfig.isEmpty()) {
        this.dockerConfigFile = new File(dockerConfig, "config.json");
      }
      else if (configFile.exists()) {
        this.dockerConfigFile = configFile;
      }
      else if (legacyConfigFile.exists()) {
        this.dockerConfigFile = legacyConfigFile;
      }
    }

    return dockerConfigFile;
  }

  public String getDockerHost() {
    return dockerHost;
  }

  public void setDockerHost(String dockerHost) {
    this.dockerHost = dockerHost;
  }

  public int getDefaultTlsPort() {
    return defaultTlsPort;
  }

  public void setDefaultTlsPort(int defaultTlsPort) {
    this.defaultTlsPort = defaultTlsPort;
  }

  public String getTlsVerify() {
    return tlsVerify;
  }

  public void setTlsVerify(String tlsVerify) {
    this.tlsVerify = tlsVerify;
  }

  public String getCertPath() {
    return certPath;
  }

  public void setCertPath(String certPath) {
    this.certPath = certPath;
  }

  public String getDefaultCertPath() {
    return defaultCertPath;
  }

  public void setDefaultCertPath(String defaultCertPath) {
    this.defaultCertPath = defaultCertPath;
  }

  public String getIndexUrl_v1() {
    return indexUrl_v1;
  }

  public String getIndexUrl_v2() {
    return indexUrl_v2;
  }

  public File getConfigFile() {
    return configFile;
  }

  public void setConfigFile(File configFile) {
    this.configFile = configFile;
  }

  public File getLegacyConfigFile() {
    return legacyConfigFile;
  }

  public void setLegacyConfigFile(File legacyConfigFile) {
    this.legacyConfigFile = legacyConfigFile;
  }

  public String getApiVersion() {
    return apiVersion;
  }

  public void setApiVersion(String apiVersion) {
    this.apiVersion = apiVersion;
  }

  public String getTmpdir() {
    return tmpdir;
  }

  public void setTmpdir(String tmpdir) {
    this.tmpdir = tmpdir;
  }

  public String getDockerContentTrust() {
    return dockerContentTrust;
  }

  public void setDockerContentTrust(String dockerContentTrust) {
    this.dockerContentTrust = dockerContentTrust;
  }

  public String getContentTrustServer() {
    return contentTrustServer;
  }

  public void setContentTrustServer(String contentTrustServer) {
    this.contentTrustServer = contentTrustServer;
  }

  public String getOfficialNotaryServer() {
    return officialNotaryServer;
  }

  public void setOfficialNotaryServer(String officialNotaryServer) {
    this.officialNotaryServer = officialNotaryServer;
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy