FROM golang:1.27.1-alpine AS build WORKDIR /src ARG GOPROXY=https://package-mirror.liara.ir/repository/go/ ENV GOPROXY=$GOPROXY COPY go.mod go.sum ./ RUN go mod download COPY cmd ./cmd COPY internal ./internal RUN CGO_ENABLED=0 GOOS=linux go build \ -trimpath \ -ldflags="-s -w" \ -o /out/api \ ./cmd/api FROM alpine:3.22 RUN apk add --no-cache ca-certificates \ && addgroup -S app \ && adduser -S -G app app \ && mkdir /data \ && chown app:app /data WORKDIR /app COPY --from=build /out/api ./api USER app EXPOSE 8080 CMD ["./api"]