FROM golang:1.25-alpine AS builder WORKDIR /src COPY go.mod go.sum ./ RUN go mod download COPY . . RUN CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -trimpath -ldflags="-s -w" -o /out/server ./cmd/server FROM alpine:3.20 RUN addgroup -S app && adduser -S -G app app WORKDIR /app COPY --from=builder /out/server /app/server COPY config.example.json /app/config.example.json ENV PORT=8080 EXPOSE 8080 USER app ENTRYPOINT ["/app/server"]