Dan*_*ini 5 environment-variables docker reactjs google-cloud-platform google-cloud-run
我正在使用 Dockerfile 将 create-react-app 服务部署到 Google Cloud Run 上,但我想不再在 .env 文件中声明环境变量,而是在 Google Cloud Run 的仪表板上声明它们,如下所示:

但是,当我使用以下命令调用环境变量时
console.log("REDIRECT", process.env.REACT_APP_REDIRECT_URI)
Run Code Online (Sandbox Code Playgroud)
我尝试引用的任何环境变量都会返回 null。是否还有另一个步骤来访问我缺少的这些变量?
这是我的 Dockerfile:
FROM node:10-alpine as react-build
WORKDIR /app
COPY . ./
RUN yarn
RUN yarn build
FROM nginx:alpine
COPY nginx.conf /etc/nginx/conf.d/configfile.template
ENV PORT 8080
ENV HOST 0.0.0.0
RUN sh -c "envsubst '\$PORT' < /etc/nginx/conf.d/configfile.template > /etc/nginx/conf.d/default.conf"
COPY --from=react-build /app/build /usr/share/nginx/html
EXPOSE 8080
CMD ["nginx", "-g", "daemon off;"]
Run Code Online (Sandbox Code Playgroud)
您的容器仅提供静态文件(通过 NGINX),并且在 Cloud Run 端不执行任何处理。
实际上,您将静态文件暴露给用户。用户获取文件并将其加载到浏览器中。用户的浏览器执行 Javascript 并读取当前环境(用户的浏览器)上的环境变量。
因此,在此用例中不使用 Cloud Run 环境变量。您必须在 Cloud Run 上执行处理才能使用 Cloud Run 环境变量。
| 归档时间: |
|
| 查看次数: |
2148 次 |
| 最近记录: |