7

现在我有一个大厅管道脚本,可以从 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

我怎样才能改变这一点,以便我只需要创建一个docker-image资源和image-update工作?

4

1 回答 1

6

你不能,因为这不是 Concourse 的真正运作方式。

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

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

于 2016-10-18T08:54:54.397 回答