嘿,非常感谢所有的帮助,我已经坚持了一周了......
我正在尝试将由框架 goa 构建的 golang 后端 api 放入 docker 容器中。当我构建并运行 go 二进制文件时,服务器按预期工作,我可以转到我的路线并查看返回的数据。一旦我将服务器放入 docker 容器中,我就会得到 ERR_CONNECTION_REFUSED / ERR_SOCKET_NOT_CONNECTED,我对自己做错了什么感到非常困惑。
这是我的 Docker 文件
# Grab hardened go image from artifactory.
FROM golang:1.16.9-alpine
# Set working directory to be inside the container.
WORKDIR /app
COPY . .
# Download all dependencies.
RUN go build -o main ./cmd
#Expose the port
EXPOSE 8080
# Run the executable
CMD ["./main"]
这是我的 netstat 结果
tcp 0 0 0.0.0.0:8080 0.0.0.0:* LISTEN -
tcp6 0 0 :::8080 :::* LISTEN -
最后,这是我运行容器的时候
[api] 21:43:17 HTTP "Auth" mounted on GET /api/auth
[api] 21:43:17 HTTP "Create" mounted on POST /api/user
[api] 21:43:17 HTTP "ReadByID" mounted on GET /api/user/{id}
[api] 21:43:17 HTTP server listening on "localhost:8080"
任何帮助表示赞赏,让我知道是否可以提供更多详细信息