【发布时间】:2020-11-16 13:18:26
【问题描述】:
在这里,我想将 Docker 用于我未来的 react/webpack 应用程序,但我无法正确配置 Webpack 和/或 docker 以使重新加载工作 (webpack-dev-server)。
我不太明白为什么,配置对我来说似乎没问题,也许我的“启动”命令不好?
这里是 Dockerfile 配置:
FROM node:11-alpine
WORKDIR /app
COPY package.json /app
RUN npm install
COPY . /app
CMD npm start
EXPOSE 8081
这里是 Webpack.config.js :
const HtmlWebPackPlugin = require("html-webpack-plugin");
const path = require('path');
module.exports = {
entry: "./src/App.jsx",
output: {
path: path.resolve(__dirname, 'dist'),
filename: 'bundle.js'
},
module: {
rules: [
{
test: /\.(js|jsx)$/,
exclude: /node_modules/,
use: {
loader: "babel-loader"
}
},
{
test: /\.s[ac]ss$/i,
use: [
// Creates `style` nodes from JS strings
'style-loader',
// Translates CSS into CommonJS
'css-loader',
'resolve-url-loader',
// Compiles Sass to CSS
'sass-loader',
]
}
]
},
devServer: {
historyApiFallback: true,
port:8081,
host: '0.0.0.0',
watchOptions: {
aggregateTimeout: 500, // delay before reloading
poll: 1000 // enable polling since fsevents are not supported in docker
}
},
plugins: [new HtmlWebPackPlugin({ template: "./src/index.html" })]
};
这里是 npm 启动脚本:
"start": "webpack-dev-server --host 0.0.0.0 --config ./webpack.config.js --mode development",
谢谢!
【问题讨论】:
-
你是如何运行容器的?
-
docker build -t test .docker run -p 8081:8081 -
not build 命令,
docker run命令与run命令一样热重载问题。 -
我把它放在后面,我的 docker run 命令是:
docker run -p 8081:8081 test -
如果不将文件绑定到具有卷的容器,您的容器无法检测文件更改,当您构建映像时,它会立即复制您的本地文件,它会在你从它运行一个容器
标签: node.js reactjs docker webpack