如何在 Cloud Run 中使用环境变量进行持续实施?

Posted

技术标签:

【中文标题】如何在 Cloud Run 中使用环境变量进行持续实施?【英文标题】:How can I use enviroments variables in Cloud Run whit continuous implementation? 【发布时间】:2021-10-07 06:26:24 【问题描述】:

我正在使用 Cloud Run,我想通过 Github 继续实施,但很明显,我无法上传我的环境变量,所以我可以使用什么

当我使用“实施和编辑新版本”时无法放置它,因为它不会继续,我必须打开它点击它,并填写env

我不能在我的 Dockerfile 上使用 ENV,因为我必须将它上传到我的 Github 上

我不能在 cloud Build 上使用替换它,因为我使用的是 Dockerfile,并且此选项仅适用于 cloudbuild.yml(我不知道如何创建它,我只知道 docker :)

也许我可以在 Cloud run 上编辑 yalm 我不确定这是否是一个好选择

如果我使用gcloud build也许我可以通过,但我必须点击“实施和编辑新版本”并且它不是持续实施

我的 Dockerfile 如果你想帮我在cloudbuild.yml上转换它

FROM node:15

WORKDIR /app

COPY package*.json ./

ENV ENV production

ENV PORT 3000

ENV API_URL https://api.mysite.com

RUN npm install --only=production

COPY . .

RUN npm run build

CMD ["npm", "start"]

【问题讨论】:

你是如何配置与 Github 的集成的?你能提供更多细节吗? 【参考方案1】:

在google documentation,我找到了如何创建 cloudbuild.yalm 以进行持续集成

 steps:
 # Build the container image
 - name: 'gcr.io/cloud-builders/docker'
   args: ['build', '-t', 'gcr.io/$PROJECT_ID/api:$COMMIT_SHA', '.']
 # Push the container image to Container Registry
 - name: 'gcr.io/cloud-builders/docker'
   args: ['push', 'gcr.io/$PROJECT_ID/api:$COMMIT_SHA']
 # Deploy container image to Cloud Run
 - name: 'gcr.io/google.com/cloudsdktool/cloud-sdk'
   entrypoint: gcloud
   args:
   - 'run'
   - 'deploy'
   - 'api'
   - '--image'
   - 'gcr.io/$PROJECT_ID/api:$COMMIT_SHA'
   - '--region'
   - 'us-east1'
   - '--platform'
   - 'managed'
 images:
 - 'gcr.io/$PROJECT_ID/api:$COMMIT_SHA'

您必须为您的服务名称更改 API

之后,我把“实施和编辑一个新版本”并把环境变量放上去

并且所有持续实现都将具有我在实现新版本时放置的相同环境变量。

【讨论】:

【参考方案2】:

您没有将任何环境变量传递给服务。

gcloud beta run deploy --help 检查--set-env-vars

- name: 'gcr.io/google.com/cloudsdktool/cloud-sdk'
   entrypoint: gcloud
   args:
   - 'run'
   - 'deploy'
   - 'api'
   - '--image'
   - 'gcr.io/$PROJECT_ID/api:$COMMIT_SHA'
   - '--region'
   - 'us-east1'
   - '--platform'
   - 'managed'
   - '--set-env-vars'
   - 'API_URL=$_API_URL'

You can use substitutions in the build trigger: https://cloud.google.com/build/docs/configuring-builds/substitute-variable-values

【讨论】:

以上是关于如何在 Cloud Run 中使用环境变量进行持续实施?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 React 中使用在 Google Cloud Run Dashboard 上声明的 ENV 变量

如何将 Google Cloud Run Container 连接到 Open***?

如何获取或生成Google Cloud Run服务的部署URL

如何在 Google App Engine 标准环境中使用 Google Cloud Build 或其他方法设置环境变量?

如何通过 Google Cloud Build 中的步骤设置环境或替换变量?

将 env 变量从 Google 的 Secret Manager 加载到在 Google Cloud Run 上运行但未通过 Cloud Build 部署的 Docker 容器中?