storybook Docker容器中的文件更改时Webpack未重新编译(Windows)

uqdfh47h  于 2022-10-29  发布在  Docker
关注(0)|答案(1)|浏览(243)

描述Bug

更改“/stories”中的文件(在已安装的驱动器中)时,Webpack不会在Docker容器中重新编译(* 注意:这甚至还不是一个热重载问题 *)。我有一个类似的React设置,在React中,监视是通过指定watchOptions.poll解决的,而热重载是通过Map适当的端口解决的。

重现

复制可能没有帮助,因为它只复制容器内的内容?我的Dockerfile是以以下方式创建的:
文件结构

  1. react_setup
  2. - some files specific to react configuration
  3. storybook_setup
  4. - main.js
  5. Dockerfile
  6. entrypoint.sh

停靠文件

  1. FROM node:14.17.1-alpine3.13
  2. RUN mkdir -p /projecttmp/frontend && cd /projecttmp/frontend && npm init -y
  3. COPY react_setup/ /projecttmp/frontend/
  4. RUN cd /projecttmp/frontend \
  5. && npm i webpack webpack-cli webpack-dev-server webpack-bundle-tracker source-map-loader --save-dev \
  6. && npm i @babel/core@7.13.10 babel-loader@8.2.2 @babel/preset-env@7.13.10 @babel/preset-react@7.12.13 react@17.0.1 react-dom@17.0.1 react-responsive node-sass@6.0.0 --save-dev \
  7. && npm i -D @pmmmwh/react-refresh-webpack-plugin react-refresh \
  8. && npm i storybook@6.2.9 storybook-css-modules-preset --save-dev \
  9. && npm i -D @storybook/preset-scss css-loader sass sass-loader@10.1.1 style-loader mini-css-extract-plugin \
  10. && npx sb init
  11. COPY storybook_setup/ /projecttmp/frontend/.storybook/
  12. WORKDIR /project
  13. EXPOSE 6006 8080
  14. COPY entrypoint.sh /usr/local/bin/entrypoint.sh
  15. ENTRYPOINT /usr/local/bin/entrypoint.sh

entrypoint.sh

  1. # !/bin/ash
  2. (mv /projecttmp/frontend /project/ || mv /projecttmp/frontend/node_modules /project/frontend/) # if failed to move frontend-tmp due to directory non-empty, attempt to update node_modules
  3. (cd /project/frontend && npm run dev) & (cd /project/frontend && npm run storybook) # serve react and storybook

main.js

  1. module.exports = {
  2. stories: ["../src/**/*.stories.mdx", "../src/**/*.stories.@(js|jsx|ts|tsx)"],
  3. addons: ["@storybook/addon-links", "@storybook/addon-essentials"],
  4. webpackFinal: async (config, { configType }) => {
  5. config.watchOptions.poll = 500;
  6. return config;
  7. },
  8. };

容器启动后我的package.json文件

  1. {
  2. "name": "frontend",
  3. "version": "1.0.0",
  4. "description": "",
  5. "main": "index.js",
  6. "scripts": {
  7. "dev": "webpack serve",
  8. "build": "webpack --mode production",
  9. "test": "echo \"Error: no test specified\" && exit 1",
  10. "storybook": "start-storybook -p 6006",
  11. "build-storybook": "build-storybook"
  12. },
  13. "keywords": [],
  14. "author": "",
  15. "license": "ISC",
  16. "devDependencies": {
  17. "@babel/core": "^7.13.10",
  18. "@babel/preset-env": "^7.13.10",
  19. "@babel/preset-react": "^7.12.13",
  20. "@pmmmwh/react-refresh-webpack-plugin": "^0.4.3",
  21. "@storybook/addon-actions": "^6.2.9",
  22. "@storybook/addon-essentials": "^6.2.9",
  23. "@storybook/addon-links": "^6.2.9",
  24. "@storybook/preset-scss": "^1.0.3",
  25. "@storybook/react": "^6.2.9",
  26. "babel-loader": "^8.2.2",
  27. "css-loader": "^5.2.6",
  28. "mini-css-extract-plugin": "^1.6.0",
  29. "node-sass": "^6.0.0",
  30. "react": "^17.0.1",
  31. "react-dom": "^17.0.1",
  32. "react-refresh": "^0.10.0",
  33. "react-responsive": "^8.2.0",
  34. "sass": "^1.35.1",
  35. "sass-loader": "^10.1.1",
  36. "source-map-loader": "^1.1.3",
  37. "storybook": "^6.2.9",
  38. "storybook-css-modules-preset": "^1.1.1",
  39. "style-loader": "^2.0.0",
  40. "webpack": "^4.46.0",
  41. "webpack-bundle-tracker": "^1.1.0",
  42. "webpack-cli": "^4.7.2",
  43. "webpack-dev-server": "^3.11.2"
  44. },
  45. "dependencies": {}
  46. }

系统

请将npx sb@next info的结果粘贴到此处。
Docker容器环境

  1. Environment Info:
  2. System:
  3. OS: Linux 5.4 Alpine Linux
  4. CPU: (4) x64 Intel(R) Core(TM) i5-7200U CPU @ 2.50GHz
  5. Binaries:
  6. Node: 14.17.1 - /usr/local/bin/node
  7. Yarn: 1.22.5 - /usr/local/bin/yarn
  8. npm: 6.14.13 - /usr/local/bin/npm

主机为Windows

其他上下文

我还在容器内运行了cat /proc/sys/fs/inotify/max_user_watches,可以确认max_user_watches是524288。
除了在module.exports中添加了webpackFinal之外,故事书设置中没有任何修改。我想知道它是否与#14984有关,但我个人很难理解围绕它的讨论。

pftdvrlh

pftdvrlh1#

我也有同样的问题。
它发生在Windows上的Docker上,但不使用Linux上的Docker。
我试过SB版本6.3.66.2.96.0.28,它们都有同样的问题。

相关问题