ishop/DOCKER_DEPLOYMENT.md
2025-08-10 12:37:00 +08:00

3.3 KiB
Raw Blame History

Docker 部署指南

快速开始

1. 使用 Docker Compose推荐

# 克隆项目
git clone <repository-url>
cd myusdtshop

# 启动服务
docker-compose up -d

# 查看日志
docker-compose logs -f

# 停止服务
docker-compose down

服务将在 http://localhost:3000 启动

2. 使用单独的 Docker 容器

# 构建镜像
docker build -t usdt-shop .

# 运行容器
docker run -d \
  --name usdt-shop \
  -p 3000:3000 \
  -v $(pwd)/database:/app/database \
  -e UPAY_APP_ID=your_app_id \
  -e UPAY_APP_SECRET=your_app_secret \
  usdt-shop

环境变量配置

创建 .env 文件来配置环境变量:

# UPay 配置
UPAY_APP_ID=your_production_app_id
UPAY_APP_SECRET=your_production_app_secret

# 服务端口
PORT=3000

# 运行环境
NODE_ENV=production

使用 Nginx 反向代理

如果需要使用 Nginx 反向代理:

# 启动包含 Nginx 的完整服务
docker-compose --profile nginx up -d

SSL 证书配置

  1. 将 SSL 证书放在 ssl/ 目录下:

    ssl/
    ├── cert.pem
    └── key.pem
    
  2. 编辑 nginx.conf 取消 HTTPS 部分的注释

  3. 重启服务:

    docker-compose --profile nginx restart nginx
    

数据持久化

  • 数据库文件:./database/shop.db
  • 图片文件:./public/images/

这些目录已通过 Docker volumes 映射到宿主机,数据会持久化保存。

生产环境部署

  1. 修改 UPay 配置

    • 将测试环境的 APP_ID 和 APP_SECRET 改为生产环境值
    • server.js 中将 API_URL 改为生产环境地址
  2. 设置环境变量

    export UPAY_APP_ID=production_app_id
    export UPAY_APP_SECRET=production_app_secret
    
  3. 使用 HTTPS

    • 配置 SSL 证书
    • 启用 Nginx HTTPS 配置

常用命令

# 查看运行状态
docker-compose ps

# 查看实时日志
docker-compose logs -f usdt-shop

# 重启服务
docker-compose restart usdt-shop

# 更新应用
docker-compose down
docker-compose build --no-cache
docker-compose up -d

# 备份数据库
docker-compose exec usdt-shop cp /app/database/shop.db /tmp/
docker cp $(docker-compose ps -q usdt-shop):/tmp/shop.db ./backup/

# 进入容器调试
docker-compose exec usdt-shop sh

监控和维护

健康检查

应用包含健康检查端点Docker 会定期检查服务状态:

# 手动检查健康状态
docker-compose exec usdt-shop wget --spider http://localhost:3000

日志管理

# 查看最近100行日志
docker-compose logs --tail=100 usdt-shop

# 按时间过滤日志
docker-compose logs --since="2024-01-01T00:00:00" usdt-shop

故障排除

  1. 端口占用

    # 检查端口占用
    lsof -i :3000
    
    # 修改端口
    # 编辑 docker-compose.yml 中的 ports 配置
    
  2. 数据库权限问题

    # 修复数据库文件权限
    sudo chown -R 1001:1001 database/
    sudo chmod 666 database/shop.db
    
  3. 容器无法启动

    # 查看详细错误信息
    docker-compose logs usdt-shop
    
    # 重新构建镜像
    docker-compose build --no-cache usdt-shop
    

安全注意事项

  • 确保 .env 文件不被提交到版本控制
  • 定期更新 Docker 镜像和依赖
  • 使用强密码和安全的 API 密钥
  • 在生产环境中启用 HTTPS
  • 定期备份数据库文件