如何在 React 中使用在 Google Cloud 运行 仪表板上声明的 ENV 变量
How to use ENV Variables Declared on Google Cloud Run Dashboard in React
我正在使用 Dockerfile 将 create-react-app 服务部署到 Google 云 运行 上,但我不想在 .env 文件中声明 env 变量,而是,在 Google Cloud 运行 的仪表板上声明它们,如下所示:
但是,当我使用
调用环境变量时
console.log("REDIRECT", process.env.REACT_APP_REDIRECT_URI)
我尝试引用的任何环境变量都会返回 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;"]
您的容器仅提供静态文件(通过 NGINX)并且不在云 运行 端执行任何处理。
实际上,您向用户公开了静态文件。用户获取文件并将它们加载到浏览器中。用户浏览器执行 Javascript 并在当前环境中读取 Env 变量:用户浏览器。
因此,云 运行 env var 未在此用例中使用。您必须在 Cloud 运行 上执行处理,使用 Cloud 运行 env 变量。
我正在使用 Dockerfile 将 create-react-app 服务部署到 Google 云 运行 上,但我不想在 .env 文件中声明 env 变量,而是,在 Google Cloud 运行 的仪表板上声明它们,如下所示:
但是,当我使用
调用环境变量时console.log("REDIRECT", process.env.REACT_APP_REDIRECT_URI)
我尝试引用的任何环境变量都会返回 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;"]
您的容器仅提供静态文件(通过 NGINX)并且不在云 运行 端执行任何处理。
实际上,您向用户公开了静态文件。用户获取文件并将它们加载到浏览器中。用户浏览器执行 Javascript 并在当前环境中读取 Env 变量:用户浏览器。
因此,云 运行 env var 未在此用例中使用。您必须在 Cloud 运行 上执行处理,使用 Cloud 运行 env 变量。