运行 docker 容器中的 React Native / Expo 不热重载

Running React Native / Expo in docker container not hot reloading

我正在尝试在 docker 容器中设置我的 Expo / React Native 来测试它。其中一些似乎有效,Expo Developer Tools 加载到我的本地机器上,但是当我编辑 App.js 时,它不会更新应用程序。我已经安装了chokidar,但是好像也没用。

我的Docker文件如下;

FROM ubuntu:20.04

ARG DEBIAN_FRONTEND=noninteractive

RUN apt-get update && \
  apt-get install -yq curl && \
  curl -fsSL https://deb.nodesource.com/setup_14.x | bash - && \
  apt-get install -y nodejs

COPY . /home/
WORKDIR /home

RUN npm install && npm install chokidar && npm install -g expo-cli && npm i -g yarn
CMD [ "npm", "start" ]

我的 docker-compose.yml 看起来是这样;

version: "3.8"

services:
  expo_app:
    container_name: expo_app
    build: .
    ports:
      - 19000:19000
      - 19001:19001
      - 19002:19002
    environment:
      - EXPO_DEVTOOLS_LISTEN_ADDRESS=0.0.0.0
      - CHOKIDAR_USEPOLLING=true
    volumes:
      - .:/usr/src/app

我 运行 全部使用 docker-compose up -d ...启动后,我可以看到 Expo Develop Tools,但编辑文件不起作用。

有没有人在运行这个堆栈中取得任何成功并解决了所有问题?

当你运行容器时,你将当前目录挂载到/usr/src/app,但容器中的workdir是/home。

通过将 docker-compose 文件更改为

来将挂载点更改为 /home
version: "3.8"

services:
  expo_app:
    container_name: expo_app
    build: .
    ports:
      - 19000:19000
      - 19001:19001
      - 19002:19002
    environment:
      - EXPO_DEVTOOLS_LISTEN_ADDRESS=0.0.0.0
      - CHOKIDAR_USEPOLLING=true
    volumes:
      - .:/home