From 7e37b92f243d368abd3c0b109f1c0aa8917acca6 Mon Sep 17 00:00:00 2001 From: Asai Neko Date: Tue, 20 Jan 2026 14:20:30 +0800 Subject: [PATCH] Add Containerfile for production use Signed-off-by: Asai Neko --- Containerfile | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 Containerfile diff --git a/Containerfile b/Containerfile new file mode 100644 index 0000000..ceb68c0 --- /dev/null +++ b/Containerfile @@ -0,0 +1,27 @@ +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" ]