【问题标题】:Inotify don't work on Docker for macInotify 不适用于 Docker for mac
【发布时间】:2016-10-31 12:25:47
【问题描述】:

我想为react-hot-loader 创建 Docker 容器。但是 inotify 可能在容器内不起作用。因此 HMR 被破坏了。

我使用 Docer for mac 版本 1.12.0-rc2-beta16(内部版本:9493)。

这是我的 docker-compose.yml。

version: "2"
services:
  web:
    build: .
    ports:
      - "8000:8000"
    volumes:
      - .:/usr/src/app
      - /usr/src/app/node_modules

我的 Dockerfile 在下面

FROM node:6.2

RUN apt update && apt install vim inotify-tools -y

RUN mkdir -p /usr/src/app
WORKDIR /usr/src/app

COPY package.json /usr/src/app
RUN npm install
COPY . /usr/src/app

EXPOSE 8000
CMD ["npm", "start"]

我将react-hot-loader 目录放在同一个目录中。

当我执行docker-compose up 时,我可以访问localhost:8000,并且我的 React 项目运行良好。但是,即使我在本地机器上编辑我的 React 组件,HMR 也不起作用。

当我尝试在容器中编辑我的 React 组件时,HMR 运行良好。

另外,我用inotify-tools检查了inotify是否能正常工作。然后当我在本地机器上编辑文件时 inotify 不起作用。当然,当我在容器内编辑文件时效果很好。

【问题讨论】:

    标签: docker webpack-dev-server webpack-hmr react-hot-loader


    【解决方案1】:

    我重新启动了我的 mac,然后 HMR 运行良好。

    【讨论】:

      【解决方案2】:

      Docker fs 不支持 inotify,你可以通过 webpack config 解决这个问题:

      watchOptions: {
          aggregateTimeout: 300,
          poll: 1000
      }
      
      

      github 问题:Docker support

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-01-08
        • 2023-01-20
        • 2022-01-04
        • 2012-02-08
        • 1970-01-01
        相关资源
        最近更新 更多