部署上线
使用 Docker 部署
使用 Docker 容器化部署 IndieShow 项目的详细指南,包括环境配置、镜像构建和容器编排
使用 Docker 部署
IndieShow 项目已经预配置了完整的 Docker 支持,包括多阶段构建、安全优化和性能调优。本指南将帮助您了解如何使用 Docker 部署您的应用。
准备工作
在开始之前,请确保:
- 安装了 Docker(Docker 安装指南)
- 项目代码已经完成开发和测试
- 准备好所需的环境变量
Docker 配置说明
项目中的 Docker 配置采用了多阶段构建策略,主要包含三个阶段:
- deps: 安装依赖阶段
- builder: 构建应用阶段
- runner: 运行应用阶段
主要特性
- 使用 Node.js 22.14.0 和 Alpine 3.21 基础镜像
- 采用 pnpm 10.4.1 作为包管理器
- 实现了最佳安全实践(非 root 用户运行、文件权限控制等)
- 优化的缓存策略和构建层
- 支持自定义环境变量配置
环境变量配置
项目支持以下环境变量:
部署步骤
使用 Docker Compose
对于开发环境或简单的部署场景,可以使用 Docker Compose:
使用以下命令启动服务:
生产环境部署建议
1. 使用 Nginx 反向代理
推荐的 Nginx 配置:
2. 容器资源限制
在生产环境中,建议设置容器资源限制:
3. 日志管理
配置日志轮转以防止日志文件过大:
监控和维护
1. 容器健康检查
可以使用 Docker 的健康检查功能:
2. 常用维护命令
常见问题解决
1. 构建失败
常见原因和解决方案:
- 网络问题:检查网络连接,必要时配置镜像源
- 内存不足:增加 Docker 可用内存
- 依赖问题:清理并重新安装依赖
2. 容器无法启动
检查以下几点:
- 端口占用:确保 3000 端口未被占用
- 环境变量:验证所有必需的环境变量都已正确设置
- 日志信息:使用
docker logs查看详细错误信息
3. 性能优化
- 使用
NODE_ENV=production环境变量 - 配置适当的 Node.js 内存限制
- 启用 Nginx 缓存和 gzip 压缩
- 定期清理未使用的镜像和容器