我刚刚完成了一个Go REST API的工作,我想将我的代码移动到一个容器中。我已经做到了这一点,但是我无法通过postman访问我的端点,因为抛出了错误:Error: socket hang up
。
根据这个SO thread,这可能是我的防火墙造成的,在运行ufw status
之后,我注意到我的防火墙没有打开,所以我不确定是什么导致了这个错误。
我的应用程序似乎运行正常,并且我将容器映射为本地计算机中的8080端口。
└─(19:14:04 on master ✭)──> docker ps ──(Tue,Feb02)─┘
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
b001f19e2957 go-library "./library" 15 minutes ago Up 15 minutes 0.0.0.0:8080->8080/tcp cranky_kare
我还确保我的请求使用此端口。
GET http://localhost:8080/books/3
Error: socket hang up
Request Headers
User-Agent: PostmanRuntime/7.26.10
Accept: */*
Postman-Token: 190a5849-b859-4324-a65e-37a7b69b49fb
Host: localhost:8080
Accept-Encoding: gzip, deflate, br
发布于 2021-04-18 13:45:28
我的问题是我在127.0.0.1
上启动了服务器,而端口映射并没有指向这个接口。在所有接口(0.0.0.0
)上启动它对我有效:
addr := fmt.Sprintf("0.0.0.0:%v", settings.Port)
server := &http.Server{
Addr: addr,
Handler: app.Router,
IdleTimeout: 120 * time.Second,
ReadTimeout: 5 * time.Second,
WriteTimeout: 5 * time.Second,
}
https://stackoverflow.com/questions/66020052
复制相似问题