无法在docker内运行webpack-dev-server [英] Cannot run webpack-dev-server inside docker
问题描述
我已经创建了一个Docker镜像,它使用webpack从容器中提供了一个简单的反应应用程序,但是在浏览器中没有任何东西。
I have created a docker image which serves a simple react app using webpack from inside the container, but I get nothing in the browser.
这是我的配置文件
package.json
{
"name": "invas_client",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"start": "webpack --inline --content-base ."
},
"author": "",
"license": "ISC",
"dependencies": {
"react": "^0.14.7",
"react-dom": "^0.14.7",
"react-router": "^2.0.0"
},
"devDependencies": {
"babel-core": "^6.5.1",
"babel-loader": "^6.2.2",
"babel-preset-es2015": "^6.5.0",
"babel-preset-react": "^6.5.0",
"http-server": "^0.8.5",
"webpack": "^1.12.13",
"webpack-dev-server": "^1.14.1"
}
}
webpack.config.js
module.exports = {
entry: './index.js',
output: {
filename: 'bundle.js',
publicPath: ''
},
module: {
loaders: [
{ test: /\.js$/, exclude: /node_modules/, loader: 'babel-loader?presets[]=es2015&presets[]=react' }
]
}
}
Docke rfile
# Use starter image
FROM node:argon
# Create app directory
RUN mkdir -p /usr/src/app
WORKDIR /usr/src/app
# Install app dependencies
COPY package.json /usr/src/app/
RUN npm install
# Bundle app source
COPY . /usr/src/app
# Expose port
EXPOSE 8080
# Default command to run
CMD ["npm", "start"]
什么工作正常
当我运行 npm start
, webpack-dev-server
正常运行,当我去 http:// localhost:8080 ,我看到我的页面。
What's working fine
When I run npm start
, the webpack-dev-server
runs normally, and when I go to http://localhost:8080, I see my page.
当我使用docker运行服务器时,使用以下命令:
When I run my server using docker, with the following command:
docker build -t anubhav756 / app &安培;&安培;码头运行-p 80:8080 anubhav756 / app
日志显示从容器内部正常工作的一切,但是当我将浏览器指向 http:// localhost ,我得到 ERR_CONNECTION_RESET
the logs show everything working normally from inside the container, but when I point my browser to http://localhost, I get ERR_CONNECTION_RESET
示例代码位于 此处
Sample code's over here
推荐答案
你只是在localhost上进行监听。
从外部可以更换您的package.json文件中的以下行:
You are actualy listening on localhost only. To be reachable from outside replace the following line in your package.json file:
"start": "webpack-dev-server --inline --content-base ."
by:
"start": "webpack-dev-server --host 0.0.0.0 --inline --content-base ."
相关讨论: https://github.com/webpack/webpack-dev-server/issues/147
这篇关于无法在docker内运行webpack-dev-server的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!