#build stage
FROM public.ecr.aws/docker/library/golang:alpine AS builder
RUN apk add --no-cache git
WORKDIR /go/src/app
COPY ["go.mod", "go.sum", "./"]
RUN go get -v ./...
COPY . .
# RUN go build -o /go/bin/app -v ./...
RUN --mount=type=cache,target=/go/pkg/mod \
    --mount=type=cache,target=/root/.cache/go-build \
    go build -o /go/bin/app -v .

#final stage
FROM public.ecr.aws/docker/library/alpine:latest
RUN apk --no-cache add ca-certificates
COPY --from=builder /go/bin/app /app
ENTRYPOINT ["/app"]
EXPOSE 8081
