Ale*_*hen 5 git continuous-integration docker concourse
现在,我有一个Concourse管道脚本,可以从git repo更新dockerhub图像。我是根据以下教程创建的。我在这个git repo中有几个docker容器,我希望能够遍历它们,为每个不同的容器重复docker-image资源和image-update工作,以使我的脚本更加整洁和可读。这是我当前的脚本:
---
resources:
- name: resource-docker
type: git
source:
uri: https://github.com/$MYUSER/$MYREPO.git
branch: master
# docker-image resources
- name: first-container
type: docker-image
source:
repository: $MYUSER/first-container
- name: second-container
type: docker-image
source:
repository: $MYUSER/second-container
jobs:
# image-update jobs
- name: first-container-image-update
public: true
serial: true
plan:
- get: resource-docker
- put: first-container
params:
build: resource-docker/first-container
- name: second-container-image-update
public: true
serial: true
plan:
- get: resource-docker
- put: second-container
params:
build: resource-docker/second-container
Run Code Online (Sandbox Code Playgroud)
如何更改此设置,以便仅创建一个docker-image资源和image-update一份工作?
你不能,因为这不是 Concourse 的真正运作方式。
Concourse 完全是声明式的、幂等的、可重复的和可再现的。因此,使配置成为程序的想法并不是该工具真正支持的。配置应该设置一次,存储在版本控制下,然后是不可变的。
您可以首先自动生成管道 YAML 文件,或者编写一个新资源,将每个 Docker 镜像报告为新“版本”以通过单个管道 - 这与 GitHub Pull Requests 资源的方式类似作品。