docker compose with create react app procedure 未定义的环境变量
docker compose with create react app procedure undefined environment variables
我在 docker-compose.yml 文件中声明环境变量时遇到问题,但当我尝试读取它们时却出现“未定义”。
我的步骤:
我使用“create react app”创建了一个 React 应用程序,然后我 运行“弹出”(但尚未更改任何内容)。此外,我将 Ngix 添加到 docker.
然后我创建了一个 Dockerfile 并将其添加到根目录中:
FROM node:alpine
WORKDIR '/app'
COPY ./package.json ./
RUN npm i
COPY . .
CMD ["npm", "run", "start"]
然后我创建了 docker-compose.yml 文件:
version: '3'
services:
nginx:
restart: always
build:
dockerfile: Dockerfile
context: ./nginx
ports:
- '3050:80'
client:
build:
context: ./client
dockerfile: Dockerfile
args:
- MAXIMUM_CAMERAS_COUNT=9
volumes:
- /app/node_modules
- ./client:/app
然后我执行“docker-compose up --build”,它工作正常。
但是当我在应用程序的某处执行操作时:
console.log('process.env.MAXIMUM_CAMERAS_COUNT:', process.env.MAXIMUM_CAMERAS_COUNT);
我得到“未定义”。
已经尝试过:
- 添加到 Dockerfile:
ARG MAXIMUM_CAMERAS_COUNT
ENV MAXIMUM_CAMERAS_COUNT $MAXIMUM_CAMERAS_COUNT
并且在 docker-compose.yml:
args:
- MAXIMUM_CAMERAS_COUNT=9
-加入撰写-docker.yml:
environment:
- MAXIMUM_CAMERAS_COUNT=9
-加入撰写-docker.yml:
environment:
MAXIMUM_CAMERAS_COUNT: 9
还有其他想法吗?
如本 documentation 中所述,您需要在变量前加上 REACT_APP_
前缀,因此在您的情况下,它将是 REACT_APP_MAXIMUM_CAMERAS_COUNT
.
我在 docker-compose.yml 文件中声明环境变量时遇到问题,但当我尝试读取它们时却出现“未定义”。
我的步骤:
我使用“create react app”创建了一个 React 应用程序,然后我 运行“弹出”(但尚未更改任何内容)。此外,我将 Ngix 添加到 docker.
然后我创建了一个 Dockerfile 并将其添加到根目录中:
FROM node:alpine
WORKDIR '/app'
COPY ./package.json ./
RUN npm i
COPY . .
CMD ["npm", "run", "start"]
然后我创建了 docker-compose.yml 文件:
version: '3'
services:
nginx:
restart: always
build:
dockerfile: Dockerfile
context: ./nginx
ports:
- '3050:80'
client:
build:
context: ./client
dockerfile: Dockerfile
args:
- MAXIMUM_CAMERAS_COUNT=9
volumes:
- /app/node_modules
- ./client:/app
然后我执行“docker-compose up --build”,它工作正常。
但是当我在应用程序的某处执行操作时:
console.log('process.env.MAXIMUM_CAMERAS_COUNT:', process.env.MAXIMUM_CAMERAS_COUNT);
我得到“未定义”。
已经尝试过:
- 添加到 Dockerfile:
ARG MAXIMUM_CAMERAS_COUNT
ENV MAXIMUM_CAMERAS_COUNT $MAXIMUM_CAMERAS_COUNT
并且在 docker-compose.yml:
args:
- MAXIMUM_CAMERAS_COUNT=9
-加入撰写-docker.yml:
environment:
- MAXIMUM_CAMERAS_COUNT=9
-加入撰写-docker.yml:
environment:
MAXIMUM_CAMERAS_COUNT: 9
还有其他想法吗?
如本 documentation 中所述,您需要在变量前加上 REACT_APP_
前缀,因此在您的情况下,它将是 REACT_APP_MAXIMUM_CAMERAS_COUNT
.