FROM golang:1.26.5-alpine AS build
WORKDIR /src
COPY go.mod go.sum ./
ENV GOPROXY=https://goproxy.cn,direct
RUN go mod download
COPY main.go schema.sql seed.json ./
RUN CGO_ENABLED=0 go build -trimpath -ldflags="-s -w" -o /server .
FROM alpine:latest
WORKDIR /app
COPY --from=build /server /app/server
COPY public /app/public
RUN mkdir /app/data && chown 10001:10001 /app/data
USER 10001
EXPOSE 8080
CMD ["/app/server"]
