그래서 단일 git repo에서 여러 도커 컨테이너를 빌드하는 파이프 라인이 있습니다. 그것은 다음과 같은 :Concourse는 커밋시 diff에서 새로운 도커 컨테이너 만 생성합니다.
---
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
작업을 실행하는 단지보다 더 많은 코드를 포함하는 마스터 (에 커밋 시스템 자원의 상당 부분을 차지하고 각각에 처음부터 컨테이너를 재건이라는 것이다 도커 컨테이너).
이 작업을 대신 컨테이너를 작성하는 데 사용 된 이전 및 새 파일을 비교하고 파일에 diff가있는 경우에만 컨테이너를 다시 작성합니다.
참고 : 파일을 다른 repos로 분리하는 것은 피하고 싶은 옵션입니다.
네, 실제로 그 일을 끝내기까지했습니다. 동일한 repo의 여러 git 리소스를 생성합니다. 각각의 경로는 서로 다릅니다. –
우수! 나는 그것이 당신을 위해 잘 된 것을 기쁘게 생각합니다. – mkb