@Jojeks

Как правильно прокинуть порт в docker?

Привет.
У меня проблема с прокидыванием портов из докер контейнера.
Система Macos.

Без докера, компилирую код
go run ./cmd/main.go
После этого могу обращаться к порту 8089 и все реквесты улетают корректно.
652c4dd09b076134476028.png

С докером dockerfile
FROM golang:alpine AS builder
RUN apk add --update --no-cache make
WORKDIR /app
COPY . .
RUN go mod download
RUN GOOS=linux go build -o ./bin/app ./cmd/main.go
FROM alpine:latest AS runner
COPY --from=builder /app/bin/app/ . 
CMD [ "./app" ]
EXPOSE 8089

Делаю билд
docker build -t test-image .
После чего запускаю контейнер
docker run -p 127.0.0.1:8089:8089 test-image

Я вижу, что сборка успешна (вижу логи о запуске сервера с таким же адресом как и при локальной сборке), но достучаться по порту уже не могу. Получаю ошибку в postman Error: socket hang up Could not get response

652c4e02485d2538355383.png

Прикладываю скрин комманд
lsof -i :8089
docker ps
652c4f1c89d12706927492.png
вроде порт слушается, но почему то никакие запросы не обрабатываются.
  • Вопрос задан
  • 1027 просмотров
Решения вопроса 1
Вероятно проблема в том, что вы биндите порт к локалхосту. Попробуйте либо убрать его, либо указать там все интерфейсы 0.0.0.0:8089:8089
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы