# ---- 前端构建 ----
FROM node:22-alpine AS frontend-builder
WORKDIR /build/new-web
COPY new-web/package.json new-web/package-lock.json ./
RUN npm ci
COPY new-web/ .
RUN npm run build

# ---- 后端构建 ----
FROM golang:1.24-alpine AS backend-builder
WORKDIR /build
COPY . .
RUN go build -ldflags="-s -w" -o bin/server
RUN apk add --no-cache upx
RUN upx --best --lzma bin/server

# ---- 最终镜像 ----
FROM alpine:latest
WORKDIR /app
COPY --from=backend-builder /build/bin/server /app/server
COPY --from=frontend-builder /build/new-web/dist /app/public

EXPOSE 8080
CMD ["./server"]
