Докер сочинять с процедурой создания реакции приложения неопределенные переменные среды
У меня есть проблема, когда я объявляю переменные окружения в файле docker-compose.yml, но когда я пытаюсь прочитать их, я получаю "undefined".
Мои шаги:
Я создал приложение React с "создать приложение реакции", затем я запускаю "извлечь" (но пока ничего не изменил). Также я добавил 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-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
-Добавить в compose-docker.yml:
environment:
- MAXIMUM_CAMERAS_COUNT=9
-Добавить в compose-docker.yml:
environment:
MAXIMUM_CAMERAS_COUNT: 9
Есть еще идеи?
1 ответ
Как описано в этой документации, вам необходимо добавить к переменной префикс REACT_APP_
так что в вашем случае это было бы REACT_APP_MAXIMUM_CAMERAS_COUNT
,