# 与 go.mod 中 go 版本一致（modernc.org/sqlite 等依赖会抬高 toolchain 要求）
FROM golang:1.25-alpine AS builder
WORKDIR /app
RUN apk add --no-cache ca-certificates
COPY go.mod go.sum ./
RUN go mod download
COPY *.go ./
ARG TARGETOS=linux
ARG TARGETARCH
RUN CGO_ENABLED=0 GOOS=${TARGETOS} GOARCH=${TARGETARCH} go build -o /mengyaconnect-backend .

FROM alpine:3.19
WORKDIR /app
RUN apk add --no-cache ca-certificates && \
    adduser -D -H appuser
COPY --from=builder /mengyaconnect-backend /app/mengyaconnect-backend
ENV DATA_DIR=/app/data
ENV PORT=8080
RUN chmod +x /app/mengyaconnect-backend && \
    mkdir -p "$DATA_DIR" && chown -R appuser:appuser /app
USER appuser
EXPOSE 8080
CMD ["/app/mengyaconnect-backend"]
