Докер сочинять с процедурой создания реакции приложения неопределенные переменные среды

У меня есть проблема, когда я объявляю переменные окружения в файле 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,

Другие вопросы по тегам