0

我正在使用 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

一切正常,但是当我在一个微服务中进行修改时,它会构建所有微服务。你知道为什么吗?谢谢你。

4

0 回答 0