如何在 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 容器中?