Как создать цикл обмена для повторяющихся ресурсов и заданий?

Прямо сейчас у меня есть скрипт конвейера, который может обновлять образы dockerhub из репозитория git. Я создал это на основе следующего руководства. У меня есть несколько контейнеров-докеров в этом репозитории git, и я хотел бы иметь возможность перебирать их, чтобы повторять ресурсы 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 задание?


person Alex Cohen    schedule 05.10.2016    source источник


Ответы (1)


Вы не можете, потому что на самом деле Concourse работает не так.

Concourse полностью декларативен, идемпотентен, повторяем и воспроизводим. Таким образом, идея о том, что конфигурация должна быть процедурной, на самом деле не поддерживается инструментом. Конфигурация должна быть установлена ​​один раз, храниться в системе контроля версий, а затем быть неизменной.

Вы можете в первую очередь автоматизировать создание конвейерного файла YAML или написать новый ресурс, который сообщает о каждом образе Docker как о новой `` версии '' для прохождения через один конвейер - это аналогичный подход к использованию ресурса GitHub Pull Requests. работает.

person EngineerBetter_DJ    schedule 18.10.2016