You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

36 lines
873 B

# admin 前端镜像:Nuxt 4 SSR 管理后台
# 构建上下文:apps/admin/
# CONSOLE_BACKEND 在容器运行时通过环境变量注入(server middleware 运行时读取)
# ============ Stage 1: Builder ============
FROM node:22-alpine AS builder
RUN corepack enable && corepack prepare pnpm@9 --activate
WORKDIR /app
COPY package.json pnpm-lock.yaml ./
RUN --mount=type=cache,target=/root/.local/share/pnpm/store \
pnpm install --frozen-lockfile
COPY . .
RUN pnpm build
# ============ Stage 2: Runtime ============
FROM node:22-alpine
RUN apk add --no-cache tzdata && \
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && \
echo "Asia/Shanghai" > /etc/timezone
WORKDIR /app
COPY --from=builder /app/.output ./
ENV NODE_ENV=production \
PORT=3000 \
CONSOLE_BACKEND=http://console:8080
EXPOSE 3000
CMD ["node", "server/index.mjs"]