vue.js npm run dev 或 Preview 似乎在 docker 中不起作用

问题描述 投票:0回答:1

我正在尝试在 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。

docker vue.js localhost vite
1个回答
0
投票

该问题可能是由于 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 主机进行访问。

© www.soinside.com 2019 - 2024. All rights reserved.