当我在docker-compose.yml文件中声明环境变量时,我遇到了一个问题,但是当我试图读取它们时,我得到了“未定义”。
我用“create React app”创建了一个React app,然后运行“eject”(但还没有更改任何内容)。此外,我还向docker添加了Ngix。
然后我创建了一个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组装——构建”,效果很好。
但当我在应用程序中的某个地方执行以下操作时:
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
-添加到compose-docker.yml:
environment:
- MAXIMUM_CAMERAS_COUNT=9
-添加到compose-docker.yml:
environment:
MAXIMUM_CAMERAS_COUNT: 9
还有其他想法吗?