所以我有一个管道,可以从一个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
任务占用了大部分系统资源,并在每次提交时从头开始重建容器到master(其中包含的代码多于docker容器)。
我想做这些任务,而不是比较用于构建容器的旧文件和新文件,如果文件中存在差异,则只重建容器。
注意:将文件分成不同的存储库是我想要避免的选项。
答案 0 :(得分:3)
您的资源可以配置为仅在更新repo中的特定文件时触发新版本:
var request = WebRequest.Create("http://api.fos.be/person/login.json?login=200100593&password=pass");
request.Headers["Authorization"] = "Basic MYAUTHTOKEN";
var response = await request.GetResponseAsync();
答案 1 :(得分:2)
如果Quintana的回答并不完全清楚,那么你可以定义多个指向同一个Git存储库的Git资源。每个资源都可以使用paths
/ ignore_paths
来指定要查看的字段。