Как передать переменные окружения в docker-compose.yml с помощью create-реагировать-приложение - PullRequest
0 голосов
/ 07 января 2019

У меня есть изображения nginx и клиента, загруженные файлом docker-compose.yml. По какой-то причине переменные среды (REACT_APP_MAXIMUM_CAMERAS_COUNT) не видны, когда приложение запущено (я получаю неопределенный), и я не могу понять, почему.

Вот мой Dockerfile для создания и реагирования:

FROM node:alpine as builder

WORKDIR /app
COPY ./package.json ./
RUN npm i
COPY . .
RUN npm run build

FROM nginx
EXPOSE 3000
COPY ./nginx/default.conf /etc/nginx/conf.d/default.conf
COPY --from=builder /app/build /usr/share/nginx/html


А вот мой файл docker-compose.yml:

version: '3'
services:
  nginx:
    image: <ip_address>:5000/orassayag/osr_streamer_nginx:v1.0
    restart: always
    ports:
      - '3050:80'
  client:
    image: <ip_address>:5000/orassayag/osr_streamer_client:v1.0
    environment:
      - REACT_APP_MAXIMUM_CAMERAS_COUNT=10


Обратите внимание , что, поскольку docker-compose извлекает изображения из частного реестра (без какой-либо сборки), он не может использовать блоки "build" с "args" (уже опробовано с args, и это работает).
Есть ли способ решить эту проблему?

1 Ответ

0 голосов
/ 08 января 2019

Файл docker-compose у вас, кажется, работает правильно. Попробуйте получить оболочку внутри работающего контейнера и наберите export.

docker exec -it code_client_1 sh
/usr/app # export
export HOME='/root'
export HOSTNAME='f4b3fc891ce3'
export NODE_VERSION='10.15.0'
export PATH='/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin'
export PORT='80'
export PWD='/usr/app'
export REACT_APP_MAXIMUM_CAMERAS_COUNT='10'
export SHLVL='1'
export TERM='xterm'
export YARN_VERSION='1.12.3'
/usr/app #

Там я вижу, как работает переменная окружения. Ваша проблема может заключаться в том, что ваш сайт создается без настройки среды, поэтому он не будет фактически читать переменные среды во время выполнения.

Здесь долго обсуждается github , и хотя это может быть неоптимально, я сам "перестраиваюсь и запускаю" каждый раз, когда запускаю службу. Это не оптимально, но работает для того, что мне нужно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...