したがって、単一の git リポジトリから複数の docker コンテナーをビルドするパイプラインがあります。次のようになります。
---
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_groups:
- serial_lock
plan:
- get: resource-docker
serial: true
- put: first-container
params:
build: resource-docker/first-container-path
- name: second-container-image-update
public: true
serial_groups:
- serial_lock
plan:
- get: resource-docker
serial: true
- put: second-container
params:
build: resource-docker/second-container-path
問題は、resource-docker
タスクの実行がシステム リソースのかなりの部分を占有し、マスターへのコミットごとにコンテナーをゼロから再構築することです (マスターには、docker コンテナーだけでなく、より多くのコードが含まれます)。
代わりに、これらのタスクでコンテナーのビルドに使用される古いファイルと新しいファイルを比較し、ファイルに差分がある場合にのみコンテナーを再構築したいと考えています。
注:ファイルを別のリポジトリに分離することは避けたいオプションです。