gpt4 book ai didi

docker - 无法在 docker 内运行 webpack-dev-server

转载 作者:IT老高 更新时间:2023-10-28 12:42:09 25 4
gpt4 key购买 nike

我创建了一个 docker 镜像,它使用容器内部的 webpack 为一个简单的 react 应用程序提供服务,但我在浏览器中什么也没有。

这是我的配置文件

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' }
]
}
}

Dockerfile

# 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时,我看到了我的页面。

什么不工作

当我使用 docker 运行我的服务器时,使用以下命令:

docker build -t anubhav756/app 。 && docker run -p 80:8080 anubhav756/app

日志显示容器内部一切正常,但是当我将浏览器指向 http://localhost 时,我得到 ERR_CONNECTION_RESET

示例代码结束 here

最佳答案

您实际上只在本地主机上收听。要从外部访问,请替换 package.json 文件中的以下行:

"start": "webpack-dev-server --inline --content-base ."

作者:

"start": "webpack-dev-server --host 0.0.0.0 --inline --content-base ."

相关讨论:https://github.com/webpack/webpack-dev-server/issues/147

关于docker - 无法在 docker 内运行 webpack-dev-server,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39632038/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com