【发布时间】:2021-03-20 02:11:12
【问题描述】:
我有一个后端服务需要部署到Google Cloud Run。
从Google's tutorial on Cloud Run,我们得到:
首先,您需要构建映像并将其发送到 Cloud Build。
gcloud builds submit --tag gcr.io/PROJECT-ID/helloworld
只有这样才能将其部署到 Cloud Run:
gcloud run deploy --image gcr.io/PROJECT-ID/helloworld --platform managed
我得到了上面的序列。但我会将此服务部署到 2 个不同的环境:TEST 和 PROD。
所以我需要一个SERVER_ENV 变量,在我的生产环境中应该是"PROD",当然在我的测试环境中应该是"TEST"。这样我的服务器(将从容器运行的快速服务器)知道要连接到哪个数据库。
但问题是我只有一个Dockerfile:
FROM node:12-slim
ENV SERVER_ENV=PROD
WORKDIR /
COPY ./package.json ./package.json
COPY ./distApp ./distApp
COPY ./distService ./distService
COPY ./public ./public
RUN npm install
ENTRYPOINT npm start
那么我如何在按照上面的构建和部署顺序设置不同的ENV 变量? gcloud builds submit 评论中是否有我可以覆盖某些内容的选项?或者使用不同的Dockerfile?有人有其他想法吗?
一个想法:
也许使用Cloud Build configuration file?
cloudbuild.yaml
【问题讨论】:
-
我认为使用构建参数可以实现您想要实现的目标:vsupalov.com/docker-env-vars。如果效果不佳,请提交常规答案
标签: docker dockerfile gcloud google-cloud-run google-cloud-build