Docker in Docker - Jenkins Docker 管道 - 如何连接到外部服务
Docker in Docker - Jenkins Docker Pipeline - how to connect to outside Service
我有以下设置
- jenkins 运行s 在 docker 容器中
- 在同级 docker 容器中 I 运行 a private npm registry
- 我使用 Docker 管道插件和 Jenkinsfile 构建打字稿库(带有节点 docker 容器)
- 我想将该库发布到该私有注册表,以便能够在其他构建作业中使用它
问题是,由于注册表 运行 在主机上的端口上,因此无法从生成脚本生成到的 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 {
...
我有以下设置
- jenkins 运行s 在 docker 容器中
- 在同级 docker 容器中 I 运行 a private npm registry
- 我使用 Docker 管道插件和 Jenkinsfile 构建打字稿库(带有节点 docker 容器)
- 我想将该库发布到该私有注册表,以便能够在其他构建作业中使用它
问题是,由于注册表 运行 在主机上的端口上,因此无法从生成脚本生成到的 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 {
...