我正在尝试在 docker 中运行一个新的 vue 项目,但它似乎不起作用。这是我的 docker 文件:
COPY vue-project/package.json ./
RUN npm install
COPY vue-project .
RUN npm run build
CMD ["npm", "run", "preview", "--host"]
EXPOSE 4173
我用来构建容器的命令:
docker image build -t test-name .
运行容器的命令:
docker run -p 4173:4173 test-name
一切正常,没有任何错误,终端返回以下内容:
> [email protected] preview
> vite preview
➜ Local: http://localhost:4173/
➜ Network: use --host to expose
但是当我在浏览器中打开 localhost:4173 时,它会返回一个简单的页面无法正常工作的响应,并带有 ERR_EMPTY_RESPONSE ,就好像没有任何东西正在运行一样。有什么想法是什么问题吗?如果重要的话,我正在使用 docker 桌面运行 Windows 11。
该问题可能是由于 Vite 服务器未绑定到正确的网络接口,无法从 Docker 容器外部访问。默认情况下,Vite 绑定到本地主机 (127.0.0.1),在 Docker 容器之外无法访问该本地主机。
尝试修改 Dockerfile 中的
CMD
行,明确告诉 Vite 使用 0.0.0.0
作为主机绑定到所有网络接口:
CMD ["npm", "run", "preview", "--", "--host", "0.0.0.0"]
此更改允许服务器接受来自容器外部的连接,从而可以通过位于
localhost:4173
的 Docker 主机进行访问。