FROM docker.io/node:22-alpine AS client-build RUN npm install -g corepack && \ corepack enable WORKDIR /app ENV VITE_APP_BASE_URL=$CLIENT_BASE_URL COPY . . RUN cd /app/client && \ pnpm install -r --frozen-lockfile && \ pnpm run build FROM docker.io/busybox:1.37 AS client WORKDIR /app COPY --from=client-build /app/client/dist . EXPOSE 3000 ENTRYPOINT ["httpd", "-f", "-p", "3000", "-h", "/app", "-v"] FROM docker.io/golang:1.25.5-alpine AS backend-build WORKDIR /app COPY . /app RUN go mod tidy && \ go build -o /app/nixcn-cms FROM docker.io/alpine:3.23 AS backend WORKDIR /app COPY --from=backend-build /app/nixcn-cms /app/nixcn-cms EXPOSE 8000 ENTRYPOINT [ "/app/nixcn-cms" ]