问题描述
我试图使Vue应用程序在Docker容器内本地运行,并在发布到指定端口时出现问题。
这是我的Dockerfile
FROM node:lts-alpine
RUN mkdir -p /app
copY . /app
workdir /app
RUN npm install
RUN npm run build
EXPOSE 3000
CMD ["npm","start"]
我在项目的根目录中运行
docker build --tag projectname .
这成功创建了一个我应该能够在容器中运行的图像。
但是,无论何时运行以下命令,我都无法从浏览器的任何端口访问容器。
docker run -p 3000:3000 --name projectname projectname
输出显示有关拆分代码以减小大小的一些建议,但没有错误,它指出我应该能够从http:// localhost:8080访问该应用程序,但是该页面提供了拒绝连接错误
我的印象是publish选项应该侦听公开的端口3000并将流量转发到本地端口3000。
但是,这似乎没有发生。
我正在运行Windows的Docker,这也可能是问题的一部分。
解决方法
尝试运行此命令docker run -p 3000:8080 --name projectname projectname
,然后在docker主机上的localhost:3000
上访问应用程序。
如果这可行,则可以在Dockerfile中将EXPOSE 3000
更新为EXPOSE 8080
,或者在应用程序内部的端口3000而不是8080上启动http服务器。第二步是可选的,但它将帮助其他人理解从该映像启动的容器应该在Dockerfile中提到的端口上侦听。