FROM golang:1.24-alpine AS builder WORKDIR /src COPY backend/go.mod backend/go.sum ./ RUN go mod download COPY backend/ ./ RUN CGO_ENABLED=0 GOOS=linux go build -trimpath -ldflags="-s -w" -o /out/xingyu-api ./cmd/server FROM alpine:3.22 RUN apk add --no-cache ca-certificates tzdata \ && addgroup -S xingyu \ && adduser -S -G xingyu xingyu \ && mkdir -p /data/uploads \ && chown -R xingyu:xingyu /data WORKDIR /app COPY --from=builder /out/xingyu-api /app/xingyu-api USER xingyu EXPOSE 8888 ENTRYPOINT ["/app/xingyu-api"]