feat: dockerpeizhi

This commit is contained in:
zhanghao 2026-06-29 11:21:49 +08:00
parent fc2d8691e3
commit b193e9faa0
2 changed files with 19 additions and 18 deletions

View File

@ -1,21 +1,28 @@
# 使用 Node 基础镜像
# ========== 阶段1构建前端 ==========
FROM node:18-alpine AS builder
WORKDIR /app
COPY package*.json pnpm-lock.yaml ./
RUN npm install -g pnpm && pnpm install --frozen-lockfile
RUN npm install -g pnpm
# 复制源码并构建
WORKDIR /app
# 先拷贝依赖文件,利用 Docker 缓存层
COPY package.json pnpm-lock.yaml ./
RUN pnpm install --frozen-lockfile
# 拷贝源码并构建
COPY . .
RUN pnpm run build
# 生产阶段:只复制必要文件
FROM node:18-alpine
# ========== 阶段2生产运行 ==========
FROM node:18-alpine AS runner
RUN npm install -g pnpm
WORKDIR /app
# 只拷贝生产需要的文件,保持镜像最小
COPY package.json package-lock.json pnpm-lock.yaml ./
RUN npm ci --omit=dev && npm cache clean --force
# 只拷贝生产需要的文件
COPY package.json pnpm-lock.yaml ./
RUN pnpm install --frozen-lockfile --prod && pnpm store prune
# 拷贝 Express 服务代码
COPY server/ ./server/
@ -23,13 +30,9 @@ COPY server/ ./server/
# 从构建阶段拷贝前端产物
COPY --from=builder /app/dist ./dist
EXPOSE 3001
# 暴露端口(与 Express 监听端口一致)
EXPOSE 3000
# 环境变量
ENV NODE_ENV=production
ENV VITE_SERVICE_PORT=3000
# 启动 Express 服务(使用 pnpm start 或 node server/index.js
CMD ["pnpm", "start"]
CMD ["node", "server/index.js"]

View File

@ -1,5 +1,3 @@
version: '3.8'
services:
app:
build: