上传的图片项目:“Jenkins Artifactory插件”
  1. Jenkins Artifactory插件
  2. hap - 1190

使Artifactory插件与TLS安全Docker套接字工作

    XML 可打印的

    细节

    • 类型: 功能要求
    • 状态: Resolved
      A resolution has been taken, and it is awaiting verification by reporter. From here issues are either reopened, or are closed.">解决
    • 解决方法: 完成
    • 影响版本/ s: 3.2.1之上
    • 修复版本/ s: 3.4.0
    • 组件/ s: 没有一个

      描述

      我们正在使用詹金斯与管道多分支插件,Docker管道插件,凭证插件和Artifactory插件。

      我们的构建运行在普通Docker JNLP从库中。在Jenkins Docker云中使用的Docker守护程序套接字是TLS安全的(-tlsverify set),因此我们在Jenkins中配置了Docker客户端凭证。

      当使用脚本管道构建Docker映像时,我们使用Docker管道插件设置Docker主机和凭据:

      docker.withServer (env。DOCKER_HOST, 'jenkins_docker_credentials') {image = docker.build(buildImageTag) sh 'do something'}

      这可以很好地用于构建图像,但不适用于使用Artifactory Plugin将图像推入或从Artifactory拖动到Artifactory。

      这样的:

      def artServer = Artifactory.server(env.ART_SERVER)docker服务器:artServer,主机:env。DOCKER_HOST docker.withServer (env。DOCKER_HOST, 'jenkins_docker_credentials') {artDocker。push(buildImageTag, artRepoDeploy, buildInfo)}

      从不使用Docker管道插件设置的Docker凭据。相反,Artifactory试图连接到env。没有TLS的DOCKER_HOST。因为Artifactory没有凭据参数。码头工人I am looking for a way to configure Artifactory Plugin for TLS with Docker.

      我从查看代码中发现:

      底层的docker-java支持系统环境、系统属性、属性文件和用于设置TLS客户端凭证的编程配置。由于我们使用的是普通的Jenkins Docker JNLP客户端,因此似乎没有办法为运行Artifactory Plugin的JNLP客户端进程设置系统环境或系统属性。

      作为一个解决方案,我们写了一个属性文件来配置docker-java的TLS:

      docker.withServer (env。DOCKER_HOST, 'jenkins_docker_credentials') {writeFile文件:"${env.JENKINS_HOME}/.docker-java. "属性”,文本:“DOCKER_TLS_VERIFY = $ {env.DOCKER_TLS_VERIFY} \ nDOCKER_CERT_PATH = $ {env。artDocker DOCKER_CERT_PATH}”。push(buildImageTag, artRepoDeploy, buildInfo)}

      这是可行的,但很难看,容易出错。我能想到两个更好的解决方案:

      1.在Artifactory插件中实现Docker凭据处理
      2.使用Docker凭据从Jenkins envars设置Docker管道插件

      如果你能看一下这个就太好了。我试着寻求支持,但无法解释我们的问题是什么。

      我有一个2的工作实现。它的计算Jenkins envars和只设置docker-java DefaultDockerClientConfig TLS选项,如果DOCKER_CERT_PATH和DOCKER_TLS_VERIFY被找到。没有额外的插件依赖。我可以为此开个公关公司。

        附件

          活动

            受让人:
            eyalb埃亚尔·本·摩西[X](未激活)
            记者:
            matthias.weber马蒂亚斯·韦伯(不活跃)
            投票:
            0 为这个问题投票
            观察人士:
            2 开始关注这个问题

              日期

              创建:
              更新:
              解决: