3.3 KiB
3.3 KiB
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 证书配置
-
将 SSL 证书放在
ssl/目录下:ssl/ ├── cert.pem └── key.pem -
编辑
nginx.conf取消 HTTPS 部分的注释 -
重启服务:
docker-compose --profile nginx restart nginx
数据持久化
- 数据库文件:
./database/shop.db - 图片文件:
./public/images/
这些目录已通过 Docker volumes 映射到宿主机,数据会持久化保存。
生产环境部署
-
修改 UPay 配置:
- 将测试环境的 APP_ID 和 APP_SECRET 改为生产环境值
- 在
server.js中将 API_URL 改为生产环境地址
-
设置环境变量:
export UPAY_APP_ID=production_app_id export UPAY_APP_SECRET=production_app_secret -
使用 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
故障排除
-
端口占用:
# 检查端口占用 lsof -i :3000 # 修改端口 # 编辑 docker-compose.yml 中的 ports 配置 -
数据库权限问题:
# 修复数据库文件权限 sudo chown -R 1001:1001 database/ sudo chmod 666 database/shop.db -
容器无法启动:
# 查看详细错误信息 docker-compose logs usdt-shop # 重新构建镜像 docker-compose build --no-cache usdt-shop
安全注意事项
- 确保
.env文件不被提交到版本控制 - 定期更新 Docker 镜像和依赖
- 使用强密码和安全的 API 密钥
- 在生产环境中启用 HTTPS
- 定期备份数据库文件