2

したがって、単一の 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 コンテナーだけでなく、より多くのコードが含まれます)。

代わりに、これらのタスクでコンテナーのビルドに使用される古いファイルと新しいファイルを比較し、ファイルに差分がある場合にのみコンテナーを再構築したいと考えています。

注:ファイルを別のリポジトリに分離することは避けたいオプションです。

4

2 に答える 2

2

Quintana の回答が完全に明確でない場合のために説明すると、同じ Git リポジトリを指す複数の Git リソースを定義できるという考えです。各リソースはpaths/を使用ignore_pathsして、参照するファイルを指定できます。

于 2016-12-06T19:33:26.067 に答える