【问题标题】:Running React Native / Expo in docker container not hot reloading在 docker 容器中运行 React Native / Expo 不是热重载
【发布时间】:2021-09-24 02:27:38
【问题描述】:

我正在尝试在 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,但编辑文件不起作用。

有没有人成功运行这个堆栈并解决了所有问题?

【问题讨论】:

  • 您使用的是什么主机操作系统?
  • @HansKilian 。我的主机是 Mac (Intel)

标签: node.js react-native docker expo


【解决方案1】:

你在运行容器时将当前目录挂载到/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

【讨论】:

    猜你喜欢
    • 2019-04-19
    • 1970-01-01
    • 2019-05-25
    • 1970-01-01
    • 1970-01-01
    • 2019-02-17
    • 1970-01-01
    • 1970-01-01
    • 2019-08-14
    相关资源
    最近更新 更多