Storybook 更改在 Ubuntu 上的 Docker 中重新加载,但不是 Windows Docker 桌面

Storybook changes reload in Docker on Ubuntu, but not Windows Docker Desktop

我有一个简单的 Dockerfile 我们在开发使用 Storybook 的 React 组件库时单独使用。配置只是从 node:latest 中提取并安装我们的项目。

Docker文件

FROM node:latest
EXPOSE 6006
WORKDIR /usr/src/app
COPY . .
RUN npm install
CMD [ "bash" ]

建筑和运行

docker build -t <our name> .
docker run --rm -it -p 6006:6006 -v $(pwd):/usr/src/app <our name>

# Inside interactive container
npm run storybook

package.json

{
  "scripts": {
    "storybook": "start-storybook -p 6006"
  }
}

在工作中,我们使用 Ubuntu 并且此设置按预期工作。

但是在使用时:

似乎没有观察到故事文件的变化。文件保存不会在控制台或浏览器中触发任何 activity。

为什么会这样?我们缺少的 Docker 设置有问题吗?

这实际上源于一个已知问题#56

Inotify does not work on Docker for Windows

Docker For Windows Documentation 建议使用 极化解决方案

Currently, inotify does not work on Docker Desktop for Windows. This becomes evident, for example, when an application needs to read/write to a container across a mounted drive. Instead of relying on filesystem inotify, we recommend using polling features for your framework or programming language.

示例极化解决方案(docker-windows-volume-watcher)

一种极化解决方案是docker-windows-volume-watcher

运行 项目目录中另一个终端的以下内容解决了问题:

docker-volume-watcher <name of running container> $(pwd)