我正在尝试在 gcloud run docker 环境中构建我的 web 应用程序。 我想用临时环境构建,我想我可以使用这部分:
这是我的 docker 文件:
FROM tiangolo/node-frontend:10 as build-stage
WORKDIR /app
COPY package*.json /app/
RUN npm install
COPY ./ /app/
ARG configuration=${DOCKER_ENV}
RUN node ./node_modules/@angular/cli/bin/ng build --project=lunchtime --output-path=./dist/out --configuration $configuration --build-optimizer=false
FROM nginx:1.15
COPY --from=build-stage /app/dist/out/ /usr/share/nginx/html
COPY --from=build-stage /nginx.conf /etc/nginx/conf.d/default.conf
如果我将 $configuration 更改为仅用于暂存或生产,它将起作用,因此问题似乎是未定义 DOCKER_ENV。
我可以在我的 yaml 文件中看到 env 按照我的意愿设置在那里。
我是否使用了错误的语法才能在我的 docker 文件中使用 DOCKER_ENV?
答案 0 :(得分:0)
Cloud Run 中的环境变量适用于您的应用在运行时而非构建时,因此当您定义 Cloud Run 中的变量(例如“FOO”)时,您可以使用 {{ 1}}。
要在 Dockerfile 中实际使用环境变量,您需要在文件或 GCB 中定义它们,还有另一种使用 Cloud Build 的方法。您可以使用它来定义一些变量,然后您可以在构建的不同阶段使用这些变量,例如测试、部署...等:
process.env.FOO
阅读有关 GCB here 中的环境变量的更多信息