不尊重 Google Cloud Build Docker build-arg

Pal*_*dis 2 docker google-cloud-platform google-cloud-build

我在使用 Google Cloud Build 时遇到问题,其中 docker build 命令似乎不接受 build-arg 选项,即使该命令在本地按预期工作:

Dockerfile:

ARG ASSETS_ENV=development
RUN echo "ASSETS_ENV is ${ASSETS_ENV}"
Run Code Online (Sandbox Code Playgroud)

构建命令:

docker build --build-arg="ASSETS_ENV=production" .
Run Code Online (Sandbox Code Playgroud)

本地结果:

ASSETS_ENV is production
Run Code Online (Sandbox Code Playgroud)

Cloud Build 的结果:

ASSETS_ENV is development
Run Code Online (Sandbox Code Playgroud)

Pal*_*dis 6

好的,修复在云构建 yaml 配置中:

前:

- name: 'gcr.io/cloud-builders/docker'
  args: ['build', '--build-arg="ASSETS_ENV=production"', '.']
Run Code Online (Sandbox Code Playgroud)

后:

- name: 'gcr.io/cloud-builders/docker'
  entrypoint: 'bash'
  args: ['-c', 'docker build --build-arg="ASSETS_ENV=production" .']
Run Code Online (Sandbox Code Playgroud)

  • 您是否尝试过在两个单独的参数中传递“build-arg”?如`args:[“build”,“--build-arg”,“ASSET_ENV =生产”,...]`。我有类似的设置并且有效。`args: ["build","--build-arg", "TF2_BASE_IMAGE=${_TF2_BASE_IMAGE}" ...]` (2认同)