Razzle: 在 Docker 开发容器中运行 razzle

创建于 2017-12-01  ·  3评论  ·  资料来源: jaredpalmer/razzle

通过搜索这个 repo 中的问题,似乎一些贡献者熟悉使用 docker,所以也许有人可以给我一点帮助。 我正在尝试使用 docker 设置开发工作流程,并能够让 hmr 在 docker 容器内做出反应。 目标是获得一个可行的解决方案,而无需对基础 razzle-create-app 项目进行太多黑客攻击。 我创建了我的 dockerfile,如下所示:

FROM node:6

WORKDIR /home/node/app

EXPOSE 3000
EXPOSE 3001

CMD ["npm", "start"]

然后我启动容器,并将 dev 目录安装为一个卷
docker run --name hmr-test -d -p 8080:3000 -p 3001:3001 -v C:\Users\charles\Desktop\docker-hmr-test\ui-service:/home/node/app docker-hmr

该应用程序运行并正确显示,但 razzle 不会获取在本地文件系统上所做的任何更改。 如果我在容器中运行 bash 并 cat 文件,我可以看到它们正在正确更新并且 razzle 从容器中的正确目录开始,那么为什么 razzle 不能识别文件并重建?

最有用的评论

此问题与在 docker 中运行的已知问题有关。 从 Windows 环境运行容器不会将文件事件传递给具有本机功能的 docker 容器。 在实现本机功能之前,当前的解决方法是在 docker 容器中使用 webpack 轮询,以允许 webpack 轮询文件系统更改。 因此,您必须将其添加到 razzle.config.js 文件以获取 hmr 以查看更新:

       if(config.devServer){
            config.devServer.watchOptions['poll'] = 1000;
            config.devServer.watchOptions['aggregateTimeout'] = 300;
        }

@jaredpalmer如果您希望为此创建一个功能分支,我可以为 PR 做一些事情。 让我知道。 感谢您制作了这个很棒的入门套件。

所有3条评论

此问题与在 docker 中运行的已知问题有关。 从 Windows 环境运行容器不会将文件事件传递给具有本机功能的 docker 容器。 在实现本机功能之前,当前的解决方法是在 docker 容器中使用 webpack 轮询,以允许 webpack 轮询文件系统更改。 因此,您必须将其添加到 razzle.config.js 文件以获取 hmr 以查看更新:

       if(config.devServer){
            config.devServer.watchOptions['poll'] = 1000;
            config.devServer.watchOptions['aggregateTimeout'] = 300;
        }

@jaredpalmer如果您希望为此创建一个功能分支,我可以为 PR 做一些事情。 让我知道。 感谢您制作了这个很棒的入门套件。

@alexjoyner 圣莫莉。 感谢您解决这个问题。 我不是 javascript 人,所以这对我有很大帮助。

配置对我不起作用。 看起来像它的更新,但没有在浏览器中看到。

以下日志显示启动和文件更改。

0|razzle   |
0|razzle   | > [email protected] start /app/razzle/razzle
0|razzle   | > razzle start
0|razzle   |
0|razzle   |  WAIT  Compiling...
0|razzle   |
0|razzle   | ℹ Compiling Client
0|razzle   | ℹ 「wds」: Project is running at http://apps.syntapse.co.uk:3001/
0|razzle   | ℹ 「wds」: webpack output is served from undefined
0|razzle   | ℹ 「wds」: Content not from webpack is served from /app/razzle/razzle
0|razzle   | ℹ 「wds」: 404s will fallback to /index.html

0|razzle  | ✔ Client: Compiled successfully in 8.28s
0|razzle  | ℹ Compiling Server
0|razzle  | ✔ Server: Compiled successfully in 765.85ms
0|razzle  | Warning: Please use `require("react-router-dom").Route` instead of `require("react-router-dom/Rout0|razzle  | Warning: Please use `require("react-router-dom").Switch` instead of `require("react-router-dom/Swi0|razzle  | ✅  Server-side HMR Enabled!
0|razzle  | 🚀 started
0|razzle  | ℹ Compiling Server
0|razzle  | ✔ Server: Compiled successfully in 88.70ms
0|razzle  | 🔁  HMR Reloading `./server`...
0|razzle  | [HMR] Updated modules:
0|razzle  | [HMR]  - ./src/Home.js
0|razzle  | [HMR]  - ./src/App.js
0|razzle  | [HMR]  - ./src/server.js
0|razzle  | [HMR] Update applied.
0|razzle  | ℹ Compiling Client
0|razzle  | ✔ Client: Compiled successfully in 73.55ms
0|razzle  | ℹ Compiling Client
0|razzle  | ✔ Client: Compiled successfully in 228.31ms
此页面是否有帮助?
0 / 5 - 0 等级

相关问题

GouthamKD picture GouthamKD  ·  3评论

Jayphen picture Jayphen  ·  4评论

kkarkos picture kkarkos  ·  3评论

krazyjakee picture krazyjakee  ·  3评论

gabimor picture gabimor  ·  3评论