如何在GCP中创建env文件?



我试图在GCP云构建中创建.envcloudbuild.yaml文件

steps:
- name: 'python:3.8'
entrypoint: python3
args: ['-m', 'pip', 'install', '-t', '.', '-r', 'requirements.txt']
- name: 'python:3.8'
entrypoint: python3
args: ['touch', '.env']
env:
- 'DATABASE_HOST=$$DB_HOST'
- 'DATABASE_USER=$$DB_USER'
- 'DATABASE_PASSWORD=$$DB_PASS'
- 'DATABASE_NAME=$$DB_NAME'
- 'FIREBASE_CREDENTIALS=$$FIRE_CRED'
- name: 'python:3.8'
entrypoint: python3
args: ['./manage.py', 'collectstatic', '--noinput']
- name: "gcr.io/cloud-builders/gcloud"
args: ["app", "deploy"]
timeout: "1600s"

我已经尝试了几种方法来做到这一点,但还没有解决。在GCP触发器中创建了我在env中使用的替换变量。

问题是

- name: 'python:3.8'
entrypoint: python3
args: ['touch', '.env']
env:
- 'DATABASE_HOST=$$DB_HOST'
- 'DATABASE_USER=$$DB_USER'
- 'DATABASE_PASSWORD=$$DB_PASS'
- 'DATABASE_NAME=$$DB_NAME'
- 'FIREBASE_CREDENTIALS=$$FIRE_CRED'

这部分代码。

提前谢谢你。

我使用args: ['./create-env.py']代替args: ['touch', '.env'],并将环境文件写入.env

好的,让我们从正确的基础开始。在Cloud Build中,每个步骤运行一个容器。这个运行时基于一个映像(name)和几个参数(entrypoint,args,env,…)

env允许您在运行时环境中定义环境变量,例如

- name: 'gcr.io/cloud-builders/gcloud'
entrypoint: "echo"
args: ["$$ENV_VAR"]
env:
- 'ENV_VAR=WORKS'

将显示WORKS。入口点echo在参数$$ENV_VAR中。此环境变量在运行时环境中的值等于WORKS

注意双引号$。需要特别说明的是,不搜索替代变量(单个$),而是搜索运行时环境变量

最后一句话:从一个步骤到另一个步骤,运行时被销毁并重新创建。只保留"/workspace"目录。所有其他文件和env变量都将被销毁。


最后,我不确定你想要实现什么:

  • 从您的env vars创建.env文件?我不理解你的步骤
  • entrypointargs
  • .env文件加载环境变量?如果是这样,它是无用的,因为上下文在每一步之间被卸载。

所以,如果你需要更多的指导,解释你的代码的最终目标,我会相应地更新这个答案。

相关内容

  • 没有找到相关文章

最新更新