VueJs docker映像未加载到浏览器中

VueJs docker映像未加载到浏览器中,docker,docker-compose,dockerfile,docker-swarm,dockerhub,Docker,Docker Compose,Dockerfile,Docker Swarm,Dockerhub,问题:(编辑:解决方案添加在本文末尾) 我有一个VueJS项目(在webpack中开发),我想改变它的大小 我的Dockerfile看起来像: FROM node:8.11.1 as build-stage WORKDIR /app COPY package*.json ./ RUN npm install COPY . . EXPOSE 8080 CMD ["npm", "run", "dev"] .DS_Store node_mo

问题:(编辑:解决方案添加在本文末尾)

我有一个VueJS项目(在webpack中开发),我想改变它的大小

我的Dockerfile看起来像:

FROM node:8.11.1 as build-stage
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
EXPOSE 8080
CMD ["npm", "run", "dev"]
.DS_Store
node_modules/
/dist/
npm-debug.log*
yarn-debug.log*
yarn-error.log*

# Editor directories and files
.idea
.vscode
*.suo
*.ntvs*
*.njsproj
*.sln
.git/
  "scripts": {
    "dev": "webpack-dev-server --inline --progress --config build/webpack.dev.conf.js",
    "start": "npm run dev",
    "build": "node build/build.js"
  }
这基本上是跟随来自的流

我还有一个.dockrignore文件,我从.gitignore复制了相同的文件,它看起来像:

FROM node:8.11.1 as build-stage
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
EXPOSE 8080
CMD ["npm", "run", "dev"]
.DS_Store
node_modules/
/dist/
npm-debug.log*
yarn-debug.log*
yarn-error.log*

# Editor directories and files
.idea
.vscode
*.suo
*.ntvs*
*.njsproj
*.sln
.git/
  "scripts": {
    "dev": "webpack-dev-server --inline --progress --config build/webpack.dev.conf.js",
    "start": "npm run dev",
    "build": "node build/build.js"
  }
我已使用以下命令创建了docker映像:

 docker build -t test/my-image-name .
 docker run -it -p 8080:8080 --rm --name my-container-name test/my-image-name
然后使用以下命令将其运行到容器中:

 docker build -t test/my-image-name .
 docker run -it -p 8080:8080 --rm --name my-container-name test/my-image-name
最后一个命令的结果是,我在终端中获得了与在本地运行应用程序相同的输出(在使用webpack/vuejs进行调试时通常会显示):

但是:最后,在浏览器窗口中

如果我运行命令
docker images
docker ps
,我可以看到图像和容器都在那里,并且在创建它们时,我没有收到任何错误消息

我发现并尝试将Dockerfile更改为:

选择1

FROM node:8.11.1 as build-stage
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .    
EXPOSE 8080
ENTRYPOINT ["ng", "serve", "-H", "0.0.0.0"]
选择2

FROM node:8.11.1 as build-stage
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
ENTRYPOINT ["ng", "serve", "-H", "0.0.0.0"]
EXPOSE 8080
CMD ["npm", "run", "dev"]
但似乎它们都不起作用

顺便说一句,my package.json文件如下所示:

FROM node:8.11.1 as build-stage
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
EXPOSE 8080
CMD ["npm", "run", "dev"]
.DS_Store
node_modules/
/dist/
npm-debug.log*
yarn-debug.log*
yarn-error.log*

# Editor directories and files
.idea
.vscode
*.suo
*.ntvs*
*.njsproj
*.sln
.git/
  "scripts": {
    "dev": "webpack-dev-server --inline --progress --config build/webpack.dev.conf.js",
    "start": "npm run dev",
    "build": "node build/build.js"
  }

所以我想知道:如何从docker图像在浏览器中打开应用程序?

解决方案:不,不确定这是否是修复的原因,但我做了两件事。如前所述,我正在使用VueJS和webpack,因此在名为
config/index.js
的文件中,它最初看起来像:

module.exports = {   
  dev: {    
    // Paths
    assetsSubDirectory: 'static',
    assetsPublicPath: '/',
    proxyTable: {},

// Various Dev Server settings
host: 'localhost', // <---- this one
port: 8080,
module.exports={
开发人员:{
//路径
资产子目录:“静态”,
AssetPublicPath:“/”,
代理表:{},
//各种开发服务器设置

host:'localhost',//请发布容器日志:
docker log
我找到了解决方案并编辑了帖子以包含答案。最好将其作为答案发布并接受它(原因之一是谷歌索引)。谢谢!这对我来说很有效。即使在docker文件中包含EXPOSE 8080行。