【问题标题】:how to pass variable to Dockerfile while using gcloud builds submit如何在使用 gcloud 构建提交时将变量传递给 Dockerfile
【发布时间】:2021-03-24 12:14:46
【问题描述】:

我对几乎所有事情都很陌生。 码头工人。 云云。 Gitlab :D

我需要将一些配置传递给我的 dockerfile。 因为角度部分应该为每个环境使用不同的配置进行编译。

我打算使用 --substitutions 但似乎我可以用它来传递另一个变量,而不是:

只能使用 --substitutions 标志指定以下内置变量:REPO_NAME、BRANCH_NAME、TAG_NAME、REVISION_ID、COMMIT_SHA、SHORT_SHA。 https://cloud.google.com/sdk/gcloud/reference/builds/submit#--substitutions

我使用了 --set-env-vars 但它用于 gcloud 部署。

所以我在使用 gcloud build submit 时询问如何将键/值对传递给我的 Dockerfile?

【问题讨论】:

    标签: docker deployment environment-variables dockerfile gcloud


    【解决方案1】:

    IIUC,您使用的是带有 Dockerfile(而不是配置文件)的 gcloud builds submit,对吗?

    你正在使用例如

    gcloud build submit ... --tag=[[IMAGE]]
    

    如果是这样,我认为您无法将值传递给容器构建。

    但是,您可以使用另一种(更丰富的)机制,即使用 Cloud Build 配置 (YAML) 文件。

    您需要在Dockerfile 旁边添加config.yaml,它应该包含以下形式:

    steps:
    - name: gcr.io/cloud-builders/docker
      args:
      - build
      - --build-arg=[[KEY1]]=[[VALUE1]]
      - --build-arg=[[KEY2]]=[[VALUE2]]
      - --tag=[[IMAGE]]
      - .
    images:
    - [[IMAGE]]
    

    注意在上面,请将[[IMAGE]] 替换为您当前在命令中使用的--tag=[[IMAGE]] 的值。

    使用docker build,可以设置所谓的build-time variables,这可能是(!)你想要做的。请参阅 docker 的文档以获取 ARG

    在上面,为您需要的每个ARG 替换|重复--build-arg=

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-02-08
      • 1970-01-01
      • 1970-01-01
      • 2019-05-27
      • 2018-04-22
      • 2013-07-04
      • 2018-04-27
      • 1970-01-01
      相关资源
      最近更新 更多