diff --git a/docker-compose.production.yml b/docker-compose.production.yml new file mode 100644 index 0000000..db16775 --- /dev/null +++ b/docker-compose.production.yml @@ -0,0 +1,97 @@ +# SmsReceiver-go 生产环境 Docker Compose 配置 +# 使用预编译好的 Docker 镜像,无需本地编译 +# +# 快速启动: +# 1. 复制配置文件:cp config.example.yaml config.yaml +# 2. 根据需要修改 config.yaml(数据库路径、API Token 等) +# 3. 启动服务:docker compose -f docker-compose.production.yml up -d +# +# 访问地址:http://localhost:28001 +# 默认账号:admin / admin123 + +services: + sms-receiver: + # 使用 Docker Hub 上的预编译镜像 + image: ouaone/sms-receiver-go:latest + # 或指定版本:image: ouaone/sms-receiver-go:v2.0.2 + + container_name: sms-receiver-go + + # 自动重启策略 + restart: unless-stopped + + # 端口映射 + ports: + - "28001:28001" + + # 数据卷挂载 + volumes: + # 数据库目录(容器内 /app/data) + - ./data:/app/data + + # 日志目录(容器内 /app/logs) + - ./logs:/app/logs + + # 配置文件(只读挂载) + - ./config.yaml:/app/config.yaml:ro + + # 环境变量 + environment: + - TZ=Asia/Shanghai + + # 健康检查 + healthcheck: + test: ["CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://localhost:28001/health"] + interval: 30s # 每 30 秒检查一次 + timeout: 3s # 超时时间 3 秒 + retries: 3 # 失败 3 次后标记为不健康 + start_period: 5s # 容器启动后 5 秒开始检查 + + # 网络 + networks: + - sms-network + + # 资源限制(可选) + deploy: + resources: + limits: + cpus: '0.5' + memory: 128M + reservations: + cpus: '0.1' + memory: 32M + +networks: + sms-network: + driver: bridge + +# 使用说明: +# +# 1. 首次使用前,创建配置文件: +# cp config.example.yaml config.yaml +# +# 2. 编辑 config.yaml 配置: +# - data_path: /app/data (数据库名称,无需修改) +# - admin_password: admin123 (修改为强密码,或使用 password_hash) +# - api_tokens: 添加你的 TranspondSms APP 的 Token 配置 +# +# 3. 启动服务: +# docker compose -f docker-compose.production.yml up -d +# +# 4. 查看日志: +# docker compose -f docker-compose.production.yml logs -f +# +# 5. 停止服务: +# docker compose -f docker-compose.production.yml down +# +# 6. 更新镜像: +# docker compose -f docker-compose.production.yml pull +# docker compose -f docker-compose.production.yml up -d +# +# 目录结构示例: +# SmsReceiver-go/ +# ├── docker-compose.production.yml (本文件) +# ├── config.yaml (配置文件,需自行创建) +# ├── config.example.yaml (配置示例) +# ├── data/ (自动创建,存放数据库) +# └── logs/ (自动创建,存放日志)