如何为重复性资源和工作创建汇合循环?

时间:2016-10-05 23:19:54

标签: git docker continuous-integration concourse

现在我有一个大厅管道脚本,可以从git仓库更新dockerhub图像。我是根据以下tutorial创建的。我在这个git仓库中有几个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

如何更改此设置,以便我只需创建一个docker-image资源和image-update作业?

1 个答案:

答案 0 :(得分:3)

你不能,因为那不是Concourse的工作方式。

Concourse完全是声明性的,幂等的,可重复的和可重复的。因此,配置是程序性的想法并不是该工具所支持的。配置应设置一次,存储在版本控制下,然后是不可变的。

您可以首先自动生成管道YAML文件,或者编写一个新的资源,将每个Docker镜像报告为新的版本'通过单个管道 - 这与GitHub Pull Requests资源的工作方式类似。