Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs 如何在React中使用Google Cloud Run Dashboard上声明的环境变量_Reactjs_Docker_Google Cloud Platform_Environment Variables_Google Cloud Run - Fatal编程技术网

Reactjs 如何在React中使用Google Cloud Run Dashboard上声明的环境变量

Reactjs 如何在React中使用Google Cloud Run Dashboard上声明的环境变量,reactjs,docker,google-cloud-platform,environment-variables,google-cloud-run,Reactjs,Docker,Google Cloud Platform,Environment Variables,Google Cloud Run,我正在使用Dockerfile将create react应用程序服务部署到Google Cloud Run上,但我不想在.env文件中声明env变量,而是在Google Cloud Run的仪表板上声明它们,如下所示: 但是,当我使用 console.log("REDIRECT", process.env.REACT_APP_REDIRECT_URI) 对于我尝试引用的任何env变量,都返回null。是否还有其他步骤可以访问我缺少的这些变量 这是我的Dockerfile:

我正在使用Dockerfile将create react应用程序服务部署到Google Cloud Run上,但我不想在.env文件中声明env变量,而是在Google Cloud Run的仪表板上声明它们,如下所示:

但是,当我使用

console.log("REDIRECT", process.env.REACT_APP_REDIRECT_URI)
对于我尝试引用的任何env变量,都返回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;"]
FROM节点:10作为生成
WORKDIR/app
复制/
粗纱
长丝织物
来自nginx:阿尔卑斯山
复制nginx.conf/etc/nginx/conf.d/configfile.template
环境端口8080
环境主机0.0.0.0
运行sh-c“envsubt'\$PORT'/etc/nginx/conf.d/default.conf”
COPY--from=react build/app/build/usr/share/nginx/html
曝光8080
CMD[“nginx”,“-g”,“守护进程关闭;”]

您的容器只提供静态文件(通过NGINX),在云运行端不执行任何处理

实际上,您向用户公开了静态文件。用户获取文件并将其加载到浏览器中。用户浏览器在当前环境(用户浏览器)上执行Javascript并读取Env变量


因此,在这个用例中不使用cloudrunenv变量。您必须在Cloud Run上执行处理才能使用Cloud Run env变量。

您是将应用程序作为节点进程托管还是静态托管?我相信是作为节点进程托管?您可以添加docker文件吗?刚刚添加了docker文件。您的
进程.env中是否有任何内容?另外,在您的图片中,您没有设置任何值,这是为了隐藏值,对吗?您能否进一步解释一下“云运行上的本地处理”是什么意思,或者向我介绍一些有关这方面的参考资料。非常感谢你的回答!好的,我删除了“本地”。事实上,env var仅用于云运行进程。您应该有一个在云上运行的执行来使用env变量。如果在用户端(浏览器中)运行代码,则不会填充环境变量