Я пытаюсь начать работу с 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 содержит само приложение.


Немного поздно, но, возможно, это кому-то поможет.
У меня была такая же проблема, и я решил ее с помощью chokidar https://www.npmjs.com/package/chokidar .
После установки chokidar вам придется изменить это в файле docker-compose.yml:
command: CHOKIDAR_USEPOLLING=true expo start
Примечание: Я пробовал это на машине с Windows 10, но перезагрузки не было. Однако выполнение этого на машине Ubuntu сработало так, как задумано.