如何在Dockerfile中访问云运行环境变量

2024-02-04

我已经构建了一个容器化的 python 应用程序,它使用本地运行没有问题.env文件和一个docker-compose.yml编译的文件撰写构建。

然后我就可以像这样在 Dockerfile 中使用变量。

ARG APP_USR
ENV APP_USR ${APP_USR}

ARG APP_PASS
ENV APP_PASS ${APP__PASS}

RUN pip install https://${APP_USR}:${APP_PASS}@github.org/*****/master.zip

我正在通过同步的 bitbucket 存储库部署到云运行,并已在下定义“修订”>“秘密和变量”,(如此处所述:https://cloud.google.com/run/docs/configuring/environment-variables https://cloud.google.com/run/docs/configuring/environment-variables) 但我不知道如何在构建过程中访问 Dockerfile 中的这些变量。

据我了解,我需要创建一个 cloudbuild.yaml 文件来定义变量,但我无法找到如何使用 cloud run 中定义的环境变量进行设置的清晰示例。


您有多种方法可以实现这一目标。

事实上,您可以创建包含 .env 的容器。但这不是一个好的做法,因为您的 .env 可以包含秘密(API 密钥、数据库密码等),并且您的容器与环境紧密相关

另一个解决方案是将容器部署在 Cloud Run 上(不是 docker compose,它在 Cloud Run 上不起作用),并且添加带有修订版的环境变量 https://cloud.google.com/run/docs/configuring/environment-variables。使用,例如,--set-env-vars=KEY1=Value1格式来实现这一点。

如果您有秘密,可以将它们存储在秘密管理器并在运行时将其加载为环境变量或卷 https://cloud.google.com/run/docs/configuring/secrets

最后一个解决方案,如果您可以指定容器在文件树中的何处获取 .env 文件(我不是 Python 专家来帮助您),您可以使用这个技巧我在这篇文章中描述了 https://medium.com/google-cloud/mount-a-file-as-a-volume-in-cloud-run-facc74c02cc6。它是为配置文件完美设计的,它本地存储在秘密管理器中,因此可以自动保护您的秘密。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在Dockerfile中访问云运行环境变量 的相关文章

随机推荐