Я не могу запустить docker контейнер моего reactjs приложения - PullRequest
0 голосов
/ 26 апреля 2020

Я новичок с docker, и я попытался запустить контейнер образа create-реагировать-приложение, поэтому я выполнил следующие шаги:

1-npx интерфейс создания-реакции-приложения

2- Я создал Dockerfile.dev, как показано ниже:

  FROM node:alpine
  WORKDIR '/app'
  COPY package.json .
  RUN npm install
  COPY . . 
  CMD ["npm" , "run" , "start"]

3- Я использовал эту команду для создания образа:

docker build -f Dockerfile.dev .

4- Когда я запустите контейнер, используя предоставленный идентификатор изображения:

docker run -p 3000:3000 my_docker_image_id

Ничего не происходит, как показано на снимке экрана:

с этой командой ничего не происходит

Но когда я добавляю аргумент -i к моей команде, все работает нормально:

docker run -p 3000:3000 -i my_docker_image_id

ok команда

Любая идея, пожалуйста?

Ответы [ 2 ]

1 голос
/ 27 апреля 2020

Существует проблема с версией 3.4.1 реагирующих сценариев,

Поэтому я добавил docker -композитный файл, и я указал эту строку, которая решает проблему и спасает мой день:

stdin_open: true 

Итак, мой файл docker -compose.yml выглядит так:

version : '3'
services:
    web:
        build: 
            context: .
            dockerfile: Dockerfile.dev
        stdin_open: true    
        ports:
            - "3000:3000"
        volumes:
            - /app/node_modules
            - .:/app     
0 голосов
/ 26 апреля 2020

Флаг -i включает интерактивный режим, который соединяет выход с вашим терминалом. Вы пытались зайти на сайт без флага -i? Он должен был обслуживать вашу страницу, но просто не отображать вывод на вашу консоль.


ОБНОВЛЕНИЕ:

Итак, основано на проблеме GitHub вы нашли, вы также сможете использовать docker run с флагами -it. -i объясняется выше, но -t включает TTY аналогично линии stdin_open: true в вашем docker-compose.yml

docker -it run -p 3000:3000 my_docker_image_id


Добавьте * Вместо этого устанавливается флаг 1023 *, который включает режим «Отдельно» и позволяет Docker запускать контейнер в фоновом режиме. Затем вы можете запустить docker logs {container_id}, чтобы увидеть выходные данные сервера.

Вот ссылка в документации Docker: https://docs.docker.com/engine/reference/run/#detached -vs-foreground

При запуске контейнера Docker вы должны сначала решить, хотите ли вы запускать контейнер в фоновом режиме в «отдельном» режиме или в основном режиме по умолчанию:

-d = false: Detached режим: запуск контейнера в фоновом режиме, печать нового идентификатора контейнера

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