Горячая перезагрузка не работает в React Native с использованием Docker

Я пытаюсь начать работу с React Native на моем компьютере с Windows 10, используя контейнеры Docker. У меня запущено приложение, я подключаюсь к нему через локальную сеть, но когда я меняю код, он не меняется на моем устройстве, даже если я встряхиваю и нажимаю «Обновить».

Я использую клиент Expo на своем телефоне Android, чтобы открыть приложение. Приложение является основным многостраничным шаблоном, предлагаемым expo init. Как предполагается, я редактировал screens/HomeScreen.js, но приложение не изменилось. У меня включены Live Reloading и Hot Reloading. При нажатии кнопки «Обновить» приложение перезагружается, но оно остается прежним. Когда я cat файл внутри контейнера, он изменяется, просто так получилось, что сборщик не улавливает изменения.

У меня следующая структура папок:

.
├── dev
│   ├── MyProject1
│   └── Dockerfile
└── docker-compose.yml

docker-compose.yml:

version: '3'

services:

  app:
    build: ./dev
    volumes:
      - ./dev:/code
    environment:
      - REACT_NATIVE_PACKAGER_HOSTNAME=192.168.1.19
    working_dir: /code/MyProject1
    command: expo start
    ports:
      - "19000:19000"
      - "19001:19001"
      - "19002:19002"

Dockerfile:

FROM node:11.5.0-alpine

RUN apk add bash

RUN mkdir /code
WORKDIR /code
RUN npm install -g expo-cli

Папка MyProject1 содержит само приложение.

Развертывание модели машинного обучения с помощью Flask - Angular в Kubernetes
Развертывание модели машинного обучения с помощью Flask - Angular в Kubernetes
Kubernetes - это портативная, расширяемая платформа с открытым исходным кодом для управления контейнерными рабочими нагрузками и сервисами, которая...
Как создать PHP Image с нуля
Как создать PHP Image с нуля
Сегодня мы создадим PHP Image from Scratch для того, чтобы легко развернуть базовые PHP-приложения. Пожалуйста, имейте в виду, что это разработка для...
3
0
1 096
1

Ответы 1

Немного поздно, но, возможно, это кому-то поможет.

У меня была такая же проблема, и я решил ее с помощью chokidar https://www.npmjs.com/package/chokidar .

После установки chokidar вам придется изменить это в файле docker-compose.yml: command: CHOKIDAR_USEPOLLING=true expo start

Примечание: Я пробовал это на машине с Windows 10, но перезагрузки не было. Однако выполнение этого на машине Ubuntu сработало так, как задумано.

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