Docker in Docker - Jenkins Docker 管道 - 如何连接到外部服务

Docker in Docker - Jenkins Docker Pipeline - how to connect to outside Service

我有以下设置

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

知道如何改进设置以通过节点 docker 容器构建但能够发布到注册表吗?

我通过将所有三个容器(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 {
  ...