我正在使用 Google Cloud Build 作为 CI 来构建 docker 映像。每个微服务都有一个存储库和多个子目录(带有 Dockerfile 和 cloudbuild.yaml 文件)。我为每个只监视特定子目录(包含文件过滤器)的微服务设置了触发器。对于缓存 docker 层,我使用的是 Kaniko。我的 cloudbuild 步骤如下所示:
steps:
- name: 'gcr.io/kaniko-project/executor:latest'
id: Build image
args:
- --dockerfile=$_PROJECT/$_GROUP/$_IMAGE/Dockerfile
- --destination=$_DOCKER_REGISTRY/$PROJECT_ID/$_COMPANY/$_PROJECT/$_GROUP/$_IMAGE:$COMMIT_SHA
- --destination=$_DOCKER_REGISTRY/$PROJECT_ID/$_COMPANY/$_PROJECT/$_GROUP/$_IMAGE:latest
- --cache=true
- --cache-repo=$_DOCKER_REGISTRY/$PROJECT_ID/$_COMPANY/$_PROJECT/$_GROUP/$_IMAGE/cache
- --snapshotMode=redo
一切正常,但是当我在一个微服务中进行修改时,它会构建所有微服务。你知道为什么吗?谢谢你。