У меня есть Go сервер, который как-то так. Маршрутизатор - Gorilla MUX
var port string
if port = os.Getenv("PORT"); port == "" {
port = "3000"
}
srv := &http.Server{
Handler: router,
Addr: "localhost:" + port,
WriteTimeout: 15 * time.Second,
ReadTimeout: 15 * time.Second,
}
fmt.Println("Server is running on port " + port)
log.Fatal(srv.ListenAndServe())
Dockerfile -
# Build Go Server
FROM golang:1.14 AS go-build
WORKDIR /app/server
COPY cmd/ ./cmd
COPY internal/ ./internal
COPY go.mod ./
COPY go.sum ./
RUN go build ./cmd/main.go
CMD ["./main"]
Я получил успешную сборку. Я запустил его с помощью следующей команды
docker run -p 3000:3000 baaf0159d0cd
И получил следующий вывод. Сервер работает
Server is running on port 3000
Но когда я попытался отправить запрос с помощью curl, я получил пустой ответ
>curl localhost:3000
curl: (52) Empty reply from server
Почему сервер не отвечает должным образом? У меня есть другие маршруты, которые я не указал здесь, и они тоже не отвечают правильно. Кстати, я на MacOS.