请教容器内部服务 export 之后无法访问的问题

282 天前
 silk
FROM node:18-alpine
RUN mkdir -p /app
WORKDIR /app
COPY ./vue-app/ .
RUN yarn config set registry https://registry.npm.taobao.org/ \
    &&  yarn
EXPOSE 8080
CMD ["yarn", "dev"]

这是 dockerfile ,内部是一个 vite 脚手架的 demo 运行了 "dev": "vite --port 8080", 现在的问题我看文件夹是正常复制过去了,依赖文件也已经下载。服务启动后本地访问输出的端口页面无展示报错'localhost 未发送任何数据。ERR_EMPTY_RESPONSE'。日志文件如下

2023-08-01 08:55:40 yarn run v1.22.19
2023-08-01 08:55:40 $ vite --port 8080
2023-08-01 08:55:41 
2023-08-01 08:55:41   VITE v4.4.7  ready in 753 ms
2023-08-01 08:55:41 
2023-08-01 08:55:41   ➜  Local:   http://localhost:8080/
2023-08-01 08:55:41   ➜  Network: use --host to expose

求求有时间的帮我看看,非常感谢! 我最后想实现的是依赖和服务启动在容器内部安装启动和访问,vscode 修改本地文件夹能够热更新到 docker 服务。如果有经验的能不能 dddd

908 次点击
所在节点    Docker
7 条回复
ilaipi
282 天前
docker run 的时候,需要 -p 做端口映射,不是 expose 就能访问,需要映射后才可以
silk
282 天前
@ilaipi 嗯,我是用 docker 的可视化工具,在运行的时候已经设置了'Ports'这个参数 3002:8080⁠
ilaipi
282 天前
@silk #2 访问 localhost:3002
chuckzhou
282 天前
改成 vite --port 8080 --host 0.0.0.0 试试
joesonw
282 天前
楼上对的,要改监听的 host 。
buffzty
282 天前
不设置 host 默认就是 localhost. 你 docker exec 进容易可以 curl 访问 localhost:8080
设置 0.0.0.0 host 会同时监听所有网卡的端口 比如 192.168.x.x, 10.43.x.x,127.0.x.x
你也可以设置单个地址 192.168 这种
silk
282 天前
@buffzty 谢谢!

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/961386

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX