You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Docker-Compose部署Go Gin REST API无法访问问题求助

Docker部署Gin API无法访问问题解决

问题背景

通过Docker部署Gin Gonic构建的REST API、MySQL及PHPMyAdmin,PHPMyAdmin可正常访问,但访问Go API时出现localhost didn’t send any data. ERR_EMPTY_RESPONSE错误,直接运行本地main.go文件无异常。

核心原因

你的main.go中,Gin服务绑定的是容器内部的回环地址:

router.Run("localhost:8080")

容器内的localhost仅对容器自身可见,宿主机的端口映射无法穿透到这个地址,导致外部请求无法被服务接收。

修复步骤

  1. 修改main.go的启动代码,将服务绑定到容器的所有网卡:
// 替换原绑定地址
router.Run(":8080")
  1. 重新构建并重启容器:
docker-compose up --build

完成后访问http://localhost:8080即可正常获取响应。

额外配置修正

检查docker-compose.yml发现几处错误,建议一并修正:

  • app服务环境变量中DB_PASSWORD=${DB_PORT}应为DB_PASSWORD=${DB_PASSWORD}
  • fullstack-mysql服务重复设置MYSQL_ROOT_PASSWORD,保留其中一项即可
  • app服务的volumes挂载目录与Dockerfile最终运行目录不匹配,若无需实时同步代码可移除该挂载

内容的提问来源于stack exchange,提问作者The user without number

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 18:04:55