无法访问docker容器内的Vue CLI
根据本指南: 我创建了一个示例VueJS应用程序,并创建了一个docker映像:无法访问docker容器内的Vue CLI,docker,vue.js,Docker,Vue.js,根据本指南: 我创建了一个示例VueJS应用程序,并创建了一个docker映像: docker build -t myapp . 基于以下Dockerfile: # base image FROM node:10.15.0 # set working directory RUN mkdir /usr/src/app WORKDIR /usr/src/app # add `/usr/src/app/node_modules/.bin` to $PATH ENV PATH /usr/src/
docker build -t myapp .
基于以下Dockerfile:
# base image
FROM node:10.15.0
# set working directory
RUN mkdir /usr/src/app
WORKDIR /usr/src/app
# add `/usr/src/app/node_modules/.bin` to $PATH
ENV PATH /usr/src/app/node_modules/.bin:$PATH
# install and cache app dependencies
COPY package.json /usr/src/app/package.json
RUN npm install
RUN npm install -g @vue/cli
# start app
CMD ["npm", "run", "serve"]
接下来,我运行一个docker容器,其中包含:
docker run -it -v ${PWD}:/usr/src/app -v /usr/src/app/node_modules -p 5000:5000 myapp
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
755d2745bce2 myapp "npm run serve" 22 seconds ago Up 18 seconds 0.0.0.0:5000->5000/tcp confident_mirzakhani
$ docker port confident_mirzakhani
5000/tcp -> 0.0.0.0:5000
并获得此(成功)输出:
但这基本上确认了我传递给run命令的端口信息
关于如何从我的主机上的浏览器访问容器中的VueJS应用程序,有什么建议吗?根据发布的输出,该应用程序正在8080上运行!是的,我当然试过了,但它也没有在那里运行。如果你进一步阅读输出,它还会说:“通过localhost访问dev服务器:你需要映射应用程序运行的同一端口,所以可以使用CMD[“npm”,“run”,“service”,“--port”,“5000”]在docker文件中或更改docker运行命令中的端口映射-p 8080:8080完美就是这样!根据发布的输出,应用程序正在8080上运行!是的,我当然尝试过了,但它也没有在那里运行。如果你在输出中读得更深入一点,它还会说:通过localhost访问dev服务器:您需要映射应用程序正在运行的同一端口,因此可以在Dockerfile中使用CMD[“npm”、“run”、“service”、“--port”、“5000”],或者在docker run命令-p 8080:808080中更改端口映射,就是这样!
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
755d2745bce2 myapp "npm run serve" 22 seconds ago Up 18 seconds 0.0.0.0:5000->5000/tcp confident_mirzakhani
$ docker port confident_mirzakhani
5000/tcp -> 0.0.0.0:5000