Files
kt-financial-system/Dockerfile
你的用户名 4c2d2e3678
Some checks failed
Deploy to Production / deploy (push) Has been cancelled
Add Docker deployment and CI/CD configuration
- Add Dockerfile for multi-stage build
- Add docker-compose.yml for easy deployment
- Add Gitea Actions CI/CD workflow
- Add deployment script (deploy.sh)
- Add nginx and supervisord configuration
- Add deployment documentation

Deployment target: 192.168.9.149:8080

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-04 17:12:41 +08:00

68 lines
1.4 KiB
Docker

# ===== 前端构建阶段 =====
FROM node:20-alpine AS frontend-builder
WORKDIR /app
# 安装pnpm
RUN npm install -g pnpm@9
# 复制package文件
COPY package.json pnpm-lock.yaml pnpm-workspace.yaml ./
COPY apps ./apps
COPY packages ./packages
COPY internal ./internal
# 安装依赖
RUN pnpm install --frozen-lockfile
# 构建前端
RUN pnpm build
# ===== 后端构建阶段 =====
FROM node:20-alpine AS backend-builder
WORKDIR /app
# 复制后端代码
COPY apps/backend ./apps/backend
COPY package.json pnpm-lock.yaml ./
# 安装pnpm和依赖
RUN npm install -g pnpm@9 && \
cd apps/backend && \
pnpm install --frozen-lockfile
# ===== Nginx + Node.js 运行阶段 =====
FROM node:20-alpine AS runner
WORKDIR /app
# 安装nginx和supervisord
RUN apk add --no-cache nginx supervisor
# 安装pnpm
RUN npm install -g pnpm@9
# 从构建阶段复制前端产物
COPY --from=frontend-builder /app/apps/web-antd/dist /usr/share/nginx/html
# 从构建阶段复制后端代码和依赖
COPY --from=backend-builder /app/apps/backend /app/backend
COPY --from=backend-builder /app/node_modules /app/node_modules
# 创建nginx配置
RUN mkdir -p /run/nginx && \
mkdir -p /var/log/supervisor
# 复制nginx配置
COPY docker/nginx.conf /etc/nginx/nginx.conf
# 复制supervisor配置
COPY docker/supervisord.conf /etc/supervisord.conf
# 暴露端口
EXPOSE 80 3000
# 启动supervisor管理nginx和backend
CMD ["/usr/bin/supervisord", "-c", "/etc/supervisord.conf"]