使用Docker Compose部署openspug/spug运维平台的完整指南
2025-07-06 05:41:05作者:霍妲思
前言
openspug/spug是一款开源的轻量级运维平台,提供了主机管理、任务调度、应用发布等核心功能。本文将详细介绍如何使用Docker Compose快速部署spug运维平台,帮助运维人员快速搭建自己的运维管理系统。
准备工作
在开始部署前,请确保您的系统已安装以下组件:
- Docker引擎(建议版本18.06+)
- Docker Compose(建议版本1.25.0+)
部署架构解析
spug采用典型的Web应用架构,由以下两个核心服务组成:
- 数据库服务:使用MariaDB 10.8作为数据存储
- 应用服务:基于openspug/spug-service镜像提供的Web界面和后台服务
详细配置说明
数据库服务配置
db:
image: mariadb:10.8
container_name: spug-db
restart: always
command: --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
volumes:
- /data/spug/mysql:/var/lib/mysql
environment:
- MYSQL_DATABASE=spug
- MYSQL_USER=spug
- MYSQL_PASSWORD=spug.cc
- MYSQL_ROOT_PASSWORD=spug.cc
关键参数解析:
character-set-server
和collation-server
参数确保数据库支持完整的UTF-8字符集- 数据持久化通过挂载本地目录
/data/spug/mysql
实现 - 默认创建了名为
spug
的数据库和同名用户,密码为spug.cc
应用服务配置
spug:
image: openspug/spug-service
container_name: spug
privileged: true
restart: always
volumes:
- /data/spug/service:/data/spug
- /data/spug/repos:/data/repos
ports:
- "80:80"
environment:
- SPUG_DOCKER_VERSION=v3.2.4
- MYSQL_DATABASE=spug
- MYSQL_USER=spug
- MYSQL_PASSWORD=spug.cc
- MYSQL_HOST=db
- MYSQL_PORT=3306
depends_on:
- db
关键参数解析:
privileged: true
赋予容器特殊权限,用于执行一些运维操作- 挂载两个关键目录:
/data/spug/service
:存储应用配置和日志/data/spug/repos
:存储代码仓库等数据
- 环境变量配置了数据库连接信息,确保应用能正确连接到MariaDB服务
部署步骤
-
创建必要的本地目录:
mkdir -p /data/spug/{mysql,service,repos}
-
将提供的docker-compose.yml文件保存到合适位置
-
启动服务:
docker-compose up -d
-
等待服务初始化完成后,访问
http://服务器IP
即可进入spug平台
常见问题解决方案
端口冲突问题
如果80端口已被占用,可以修改ports
配置为其他端口,例如:
ports:
- "8080:80"
数据备份与恢复
备份数据库:
docker exec spug-db mysqldump -u root -pspug.cc spug > spug_backup.sql
恢复数据库:
docker exec -i spug-db mysql -u root -pspug.cc spug < spug_backup.sql
版本升级
- 备份数据
- 修改docker-compose.yml中的镜像版本
- 执行
docker-compose up -d
重新部署
安全建议
- 修改默认密码:部署后应立即修改数据库和应用中的默认密码
- 限制访问:通过防火墙限制仅允许特定IP访问80端口
- 定期备份:设置定时任务备份数据库和重要目录
总结
通过Docker Compose部署openspug/spug运维平台,我们实现了快速搭建和易于维护的部署方案。这种部署方式具有以下优势:
- 环境隔离,避免污染主机系统
- 一键启动/停止,管理方便
- 配置清晰,易于自定义
- 数据持久化,确保安全
希望本指南能帮助您顺利部署spug运维平台,提升日常运维工作效率。