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

com.github.j5ik2o.dockerController.DockerClientConfigUtil.scala Maven / Gradle / Ivy

package com.github.j5ik2o.dockerController

import com.github.dockerjava.core.{ DefaultDockerClientConfig, DockerClientConfig }
import org.slf4j.LoggerFactory

import scala.util.{ Failure, Success }

object DockerClientConfigUtil {
  private val logger = LoggerFactory.getLogger(getClass)

  def dockerHost(dockerClientConfig: DockerClientConfig): String =
    if (dockerClientConfig.getDockerHost.getHost == null)
      "127.0.0.1"
    else
      dockerClientConfig.getDockerHost.getHost

  def buildConfigAwareOfDockerMachine(
      configBuilder: DefaultDockerClientConfig.Builder = DefaultDockerClientConfig.createDefaultConfigBuilder,
      profileName: String = "default"
  ): DockerClientConfig = {
    if (DockerMachineEnv.isSupportDockerMachine) {
      DockerMachineEnv
        .load(profileName) match {
        case Success(env) =>
          logger.debug(s"env = $env")
          configBuilder
            .withDockerTlsVerify(env.tlsVerify)
            .withDockerHost(env.dockerHost)
            .withDockerCertPath(env.dockerCertPath)
            .build
        case Failure(ex) =>
          logger.warn(
            s"Failed to load `docker-machine env $profileName`, so it was fallback to the default configuration.",
            ex
          )
          configBuilder.build()
      }
    } else
      configBuilder.build()
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy