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 并且此设置按预期工作。
但是在使用时:
- Windows 10 专业版
- Git Bash 对于 Windows
- Docker 桌面
似乎没有观察到故事文件的变化。文件保存不会在控制台或浏览器中触发任何 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)
我有一个简单的 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 并且此设置按预期工作。
但是在使用时:
- Windows 10 专业版
- Git Bash 对于 Windows
- Docker 桌面
似乎没有观察到故事文件的变化。文件保存不会在控制台或浏览器中触发任何 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)