谷歌云构建Docker build-arg参数无效。

5

我在使用Google Cloud Build时遇到了问题,docker构建命令似乎无法接受build-arg选项,但是这个命令在本地可以正常工作:

Dockerfile:

ARG ASSETS_ENV=development
RUN echo "ASSETS_ENV is ${ASSETS_ENV}"

构建命令:

docker build --build-arg="ASSETS_ENV=production" .

本地结果:

ASSETS_ENV is production

云构建的结果:

ASSETS_ENV is development
2个回答

10

好的,修复方法在云构建yaml配置文件中:

之前:

- name: 'gcr.io/cloud-builders/docker'
  args: ['build', '--build-arg="ASSETS_ENV=production"', '.']

之后:

- name: 'gcr.io/cloud-builders/docker'
  entrypoint: 'bash'
  args: ['-c', 'docker build --build-arg="ASSETS_ENV=production" .']

1
顺便问一下,有人知道为什么前面的解决方案不起作用吗? - mlukasik
2
你尝试过将 build-arg 分成两个参数传递吗?例如 args: [ "build", "--build-arg", "ASSET_ENV=production", ...]。我有一个类似的设置,它可以正常工作。 args: ["build","--build-arg", "TF2_BASE_IMAGE=${_TF2_BASE_IMAGE}" ...] - Nader Ghanbari

3

对于那些像这样定义它们的步骤的人:

- name: 'gcr.io/cloud-builders/docker'
  args:
  - build
  - foo
  - bar

@nader-ghanbari的评论对我有用:

- name: 'gcr.io/cloud-builders/docker'
  args:
  - build
  - --build-arg
  - TF2_BASE_IMAGE=${_TF2_BASE_IMAGE}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接