Я новичок в docker.
Я пытаюсь реализовать RESTfull api в go с использованием эхо-сервера. Мой код работает нормально, когда я запускаю main.go
, но я не могу запустить его, используя docker.
, это мой эхо-сервер:
r := router.Router()
r.Logger.Fatal(r.Start("localhost:8080"))
, а это мой Dockerfile:
FROM golang:latest AS build
ENV GO111MODULE=on \
CGO_ENABLED=1
#Maintainer info
LABEL maintainer="Saman Hoseini"
WORKDIR /app
COPY go.mod .
COPY go.sum .
RUN go mod download
COPY . .
RUN go build -o main .
#this step is for CGO libraries
RUN ldd main | tr -s '[:blank:]' '\n' | grep '^/' | \
xargs -I % sh -c 'mkdir -p $(dirname ./%); cp % ./%;'
RUN mkdir -p lib64 && cp /lib64/ld-linux-x86-64.so.2 lib64/
#Second stage of build
FROM alpine:latest
RUN apk update && apk --no-cache add ca-certificates \
sqlite
COPY --from=build /app ./
EXPOSE 8080
ENTRYPOINT ["./main"]
После сборки при запуске контейнера я сталкиваюсь с ошибкой скручивания:
$ docker run -d -p 8080: 8080 my- docker
$ curl http://localhost: 8080
curl: (56) Ошибка Recv: сброс соединения по пиру
как я могу решить эту проблему?