Docker中的Docker-Jenkins Docker Pipeline-如何连接到外部服务

时间:2020-06-30 10:19:40

标签: jenkins-pipeline docker-in-docker verdaccio

我有以下设置

  • jenkins在docker容器中运行
  • 在同一个docker容器中,我运行private npm registry
  • 我使用Docker Pipeline插件和Jenkinsfile构建打字稿库(带有节点docker容器)
  • 我想将该库发布到该私有注册表,以便能够在其他构建作业中使用它

问题是,由于注册表在主机上的端口上运行,因此无法从构建脚本生成以构建lib的docker容器中的docker到达。 我没有找到关于如何在jenkinsfile中执行--net =“ host”(来自docker run)的信息。我想那行得通吗?!

有什么想法可以改进通过节点docker容器构建但可以发布到注册表的设置吗?

1 个答案:

答案 0 :(得分:0)

我通过将所有三个容器(jenkins,npm-registry和用于生成的容器)连接到同一自定义docker网络来修复它。

当我使用Ansible配置整个Jenkins服务器时,我在ansible脚本中添加了以下内容:

  • 我创建了一个docker网络“ Jenkins_network”
  • 我将jenkins容器连接到该网络
  • 我将npm-registry容器连接到该网络

在jenkinsfile中,我将args '--net="jenkins_network"'添加到了现在的docker块中

pipeline {
  agent {
      docker {
          image 'node:lts-alpine'
          args  '--net="jenkins_network"'
      }
  }
  stages {
  ...