Docker Compose 部署
使用 Docker Compose 编排部署 Message Nest。
推荐指数
🍀🍀🍀🍀🍀 适合生产环境,便于管理
方式一:挂载配置文件
1. 准备配置文件
创建 conf/app.ini,内容参考 Docker部署。
2. 创建 docker-compose.yml
yaml
version: "3.7"
services:
message-nest:
image: ghcr.io/engigu/message-nest:latest
# 或使用 Docker Hub 镜像
# image: engigu/message-nest:latest
container_name: message-nest
restart: always
volumes:
- ./conf:/app/conf
ports:
- "8000:8000"3. 文件目录结构
.
├── conf
│ └── app.ini
└── docker-compose.yml4. 启动服务
bash
# 测试运行
docker-compose up
# 正式运行(后台)
docker-compose up -d方式二:环境变量(推荐)
使用 MySQL
创建 docker-compose.yml:
yaml
version: "3.7"
services:
message-nest:
image: ghcr.io/engigu/message-nest:latest
# 或使用 Docker Hub 镜像
# image: engigu/message-nest:latest
container_name: message-nest
restart: always
ports:
- "8000:8000"
environment:
- MYSQL_HOST=192.168.64.133
- MYSQL_PORT=3308
- MYSQL_USER=root
- MYSQL_PASSWORD=Aa123456
- MYSQL_DB=test_11
- MYSQL_TABLE_PREFIX=message_使用 SQLite
创建 docker-compose.yml:
yaml
version: "3.7"
services:
message-nest:
image: ghcr.io/engigu/message-nest:latest
# 或使用 Docker Hub 镜像
# image: engigu/message-nest:latest
container_name: message-nest
restart: always
ports:
- "8000:8000"
volumes:
- ./data/database.db:/app/conf/database.db启动服务
bash
# 正式运行
docker-compose up -d完整示例:MySQL + Message Nest
如果你还没有MySQL,可以使用以下配置同时部署MySQL和Message Nest:
yaml
version: "3.7"
services:
mysql:
image: mysql:8.0
container_name: message-nest-mysql
restart: always
environment:
- MYSQL_ROOT_PASSWORD=Aa123456
- MYSQL_DATABASE=message_nest
volumes:
- mysql-data:/var/lib/mysql
ports:
- "3306:3306"
message-nest:
image: ghcr.io/engigu/message-nest:latest
# 或使用 Docker Hub 镜像
# image: engigu/message-nest:latest
container_name: message-nest
restart: always
depends_on:
- mysql
ports:
- "8000:8000"
environment:
- MYSQL_HOST=mysql
- MYSQL_PORT=3306
- MYSQL_USER=root
- MYSQL_PASSWORD=Aa123456
- MYSQL_DB=message_nest
- MYSQL_TABLE_PREFIX=message_
volumes:
mysql-data:常用命令
启动服务
bash
# 前台启动(查看日志)
docker-compose up
# 后台启动
docker-compose up -d查看日志
bash
# 查看所有服务日志
docker-compose logs
# 查看特定服务日志
docker-compose logs message-nest
# 实时查看日志
docker-compose logs -f message-nest停止服务
bash
# 停止服务
docker-compose stop
# 停止并删除容器
docker-compose down
# 停止并删除容器和数据卷
docker-compose down -v重启服务
bash
# 重启所有服务
docker-compose restart
# 重启特定服务
docker-compose restart message-nest更新镜像
bash
# 拉取最新镜像
docker-compose pull
# 重新创建容器
docker-compose up -d访问服务
启动后访问 http://localhost:8000
- 默认账号:
admin - 默认密码:
123456
常见问题
服务无法启动
- 检查端口是否被占用
- 检查配置是否正确
- 查看日志:
docker-compose logs
MySQL连接失败
- 确保MySQL服务已启动
- 检查
MYSQL_HOST是否正确(使用服务名) - 等待MySQL完全启动(约10-30秒)
数据持久化
使用volumes确保数据持久化:
yaml
volumes:
- ./data:/app/conf # 配置文件
- mysql-data:/var/lib/mysql # MySQL数据修改配置后重启
bash
# 修改配置文件或环境变量后
docker-compose down
docker-compose up -d