Add Containerfile for production use

Signed-off-by: Asai Neko <sugar@sne.moe>
This commit is contained in:
2026-01-20 14:20:30 +08:00
parent 7edcda544b
commit 7e37b92f24

27
Containerfile Normal file
View File

@@ -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" ]