gpt4 book ai didi

windows - 来自 docker 容器的 ERR_EMPTY_RESPONSE

转载 作者:行者123 更新时间:2023-12-02 21:14:45 28 4
gpt4 key购买 nike

在过去的几个小时里我一直在试图解决这个问题,但我陷入了困境。

我有一个非常简单的 Dockerfile,如下所示:

FROM alpine:3.6
COPY gempbotgo /
COPY configs /configs
CMD ["/gempbotgo"]
EXPOSE 8025

gempbotgo 只是一个运行网络服务器和其他一些东西的 go 二进制文件。网络服务器在 8025 上运行,应该以 hello world 进行应答。

我的问题是暴露端口。我像这样运行我的容器(构建后)

docker run --rm -it -p 8025:8025 asd

一切看起来都很好,但是当我尝试在浏览器中打开 127.0.0.1:8025 或尝试 wget 时,我只是得到一个空响应。Chrome:ERR_EMPTY_RESPONSE

该端口已在我的 Windows 10 系统上使用且不受防火墙限制。仅在我的“Windows 上的 Ubuntu 上的 Bash”终端上运行没有容器的 go 二进制文件,然后浏览到 127.0.0.1:8025 可以顺利进行。其他地址返回“ERR_CONNECTION_REFUSED”,例如 127.0.0.1:8030,因此端口上肯定有事件。

然后我进入容器

docker exec -it e1cc6daae4cf /bin/sh

并用 wget 检查发生了什么。也没有任何问题。下载带有“Hello World”的index.html 文件

有什么想法为什么 docker 不发送任何数据吗?我还使用 docker-compose 运行了我的容器,但没有区别。

我还在外部托管的 VPS 上运行了该容器。同样的问题...(Debian)

我的代码:(注意Makefile) https://github.com/gempir/gempbotgo/tree/docker

编辑:

收到一些评论后,我将 Dockerfile 更改为多阶段构建。现在这是我的 Dockerfile:

FROM golang:latest
WORKDIR /go/src/github.com/gempir/gempbotgo
RUN go get github.com/gempir/go-twitch-irc \
&& go get github.com/stretchr/testify/assert \
&& go get github.com/labstack/echo \
&& go get github.com/op/go-logging
COPY . .
RUN CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -o app .

FROM alpine:latest
RUN apk --no-cache add ca-certificates
WORKDIR /root/
COPY configs ./configs
COPY --from=0 /go/src/github.com/gempir/gempbotgo/app .
CMD ["./app"]
EXPOSE 8025

遗憾的是,这并没有改变任何东西,我让所有内容尽可能接近此处的指南:https://docs.docker.com/engine/userguide/eng-image/multistage-build/#use-multi-stage-builds

我还尝试了 golang.org 中的极简 Dockerfile,如下所示:

FROM golang:onbuild
EXPOSE 8025

但也没有成功。

最佳答案

您的问题是您绑定(bind)到代码内的 127.0.0.1:8025 。这使得代码在容器内部工作,而不是在外部。

您需要绑定(bind)到0.0.0.0:8025才能绑定(bind)到容器内的所有接口(interface)。因此,来自容器外部的流量也会被您的 Go 应用接受

关于windows - 来自 docker 容器的 ERR_EMPTY_RESPONSE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46184173/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com