无法在 dockerfile 中获取环境变量

时间:2021-02-21 07:29:03

标签: docker yaml gcloud environment

我正在尝试在 gcloud run docker 环境中构建我的 web 应用程序。 我想用临时环境构建,我想我可以使用这部分:

enter image description here

这是我的 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 按照我的意愿设置在那里。

enter image description here

我是否使用了错误的语法才能在我的 docker 文件中使用 DOCKER_ENV?

1 个答案:

答案 0 :(得分:0)

Cloud Run 中的环境变量适用于您的应用在运行时而非构建时,因此当您定义 Cloud Run 中的变量(例如“FOO”)时,您可以使用 {{ 1}}。

要在 Dockerfile 中实际使用环境变量,您需要在文件或 GCB 中定义它们,还有另一种使用 Cloud Build 的方法。您可以使用它来定义一些变量,然后您可以在构建的不同阶段使用这些变量,例如测试、部署...等:

process.env.FOO

阅读有关 GCB here 中的环境变量的更多信息