如何解决Google Cloud Build - 为 Dockerfile 传递环境变量
我正在尝试为 Cloud Run dockerize 我的 Angular 应用程序,然后根据环境变量使用生产或开发配置有条件地构建它。
云构建命令:
gcloud builds submit --tag gcr.io/project-id/image-id --timeout=1200
Dockerfile:
FROM node:14
WORKDIR usr/src/app
COPY package*.json ./
RUN npm install
# Copy local code to the container
COPY . .
# Build app
RUN if [ "$ENV" = "development" ] ; then npm run build-dev:ssr ; else npm run build-prod:ssr ; fi
CMD ["npm","run","serve:ssr"]
目前,$ENV
不存在,但是有没有办法通过 gcloud build submit
命令传递它?
解决方法
您不能像使用 docker build 命令一样传递构建参数。为此,您需要创建一个简单的 Cloud Build 文件
steps:
- name: 'gcr.io/cloud-builders/docker'
args: [ 'build','-t','gcr.io/project-id/image-id','--build-arg=ENV=$_MY_VARIABLE','.' ]
# push the container image to Container Registry
- name: 'gcr.io/cloud-builders/docker'
args: ['push','gcr.io/project-id/image-id']
images:
- 'gcr.io/project-id/image-id'
timeout: 1200s
substitutions:
_MY_VARIABLE: default value if not passed in the build command
然后像这样运行它
gcloud builds submit --substitutions=_MY_VARIABLE=specific_value
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。