我正在使用docker构建我的react应用程序并将其部署在nginx中。
我在docker-compose.yml中设置了环境变量
version: '2'
services:
nginx:
container_name: ui
environment:
- HOST_IP_ADDRESS= xxx.xxx.xx.xx
build:
context: nginx/
ports:
- "80:80"
Run Code Online (Sandbox Code Playgroud)
创建docker容器后,可以看到容器中的变量hi何时出现echo。
但是,当我尝试使用react读取它时process.env.HOST_IP_ADDRESS,正在记录它undefined。
我在某处的博客中读到,只能在生产环境中访问env变量。由于我正在构建应用程序并将其部署在nginx中,因此我应该能够访问它,但是由于某些原因,我无法阅读它。
我在这里做错什么吗?如果是这样,请让我知道解决方案。我不是反应专家,我只是在管理别人的代码。
更新:
Dockerfile如下所示:
FROM node:8 as ui-builder
WORKDIR /home/ui
COPY helloworld .
RUN npm install
RUN npm run build
FROM nginx
COPY --from=ui-builder /home/ui/build /usr/share/nginx/html
CMD ["nginx", "-g", "daemon off;"]
Run Code Online (Sandbox Code Playgroud)
React Component片段如下:
import React, { Component } from 'react';
class HelloWorld extends Component {
render() {
console.log(process.env.HOST_IP_ADDRESS);
return (
<div className="helloContainer"> …Run Code Online (Sandbox Code Playgroud)