相关疑难解决方法(0)

来自Docker容器的ERR_EMPTY_RESPONSE

我一直在尝试在最近几个小时内解决这个问题,但是我陷入了困境。

我有一个非常简单的Dockerfile,看起来像这样:

FROM alpine:3.6
COPY gempbotgo /
COPY configs /configs
CMD ["/gempbotgo"]
EXPOSE 8025
Run Code Online (Sandbox Code Playgroud)

gempbotgo只是运行网络服务器和其他一些东西的go二进制文件。该网络服务器在8025上运行,并且应该向世界问好。

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

docker run --rm -it -p 8025:8025 asd
Run Code Online (Sandbox Code Playgroud)

一切似乎都很好,但是当我尝试在浏览器中打开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
Run Code Online (Sandbox Code Playgroud)

并在那里用wget进行检查。也没有问题。使用“ Hello World”下载index.html文件

有什么想法为什么码头工人不发送任何数据?我也用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 . …
Run Code Online (Sandbox Code Playgroud)

windows bash docker docker-compose

1
推荐指数
2
解决办法
2716
查看次数

标签 统计

bash ×1

docker ×1

docker-compose ×1

windows ×1