我想为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 是否使用inotify-tools运行良好。然后当我在本地机器上编辑文件时 inotify 不起作用。当然,当我在容器内编辑文件时,它运行良好。