Yearning项目Docker部署指南:从零开始搭建SQL审核平台
2025-07-07 00:49:01作者:秋泉律Samson
前言
Yearning是一款开源的SQL审核平台,为数据库管理员和开发人员提供高效的SQL审核流程。通过Docker部署Yearning可以大大简化安装和配置过程,本文将详细介绍如何使用Docker和Docker Compose部署Yearning平台。
环境准备
在开始部署前,请确保您的系统已安装以下组件:
- Docker引擎(建议版本18.06+)
- Docker Compose(建议版本1.25.0+)
- MySQL数据库(如使用外部数据库)
基础Docker部署
单容器部署方式
使用docker run命令可以直接启动Yearning容器,需要配置以下环境变量:
docker run -d -it \
-p8000:8000 -e IS_DOCKER=is_docker \
-e SECRET_KEY=dbcjqheupqjsuwsm \
-e MYSQL_USER=root \
-e MYSQL_ADDR=10.0.0.3:3306 \
-e MYSQL_PASSWORD=123123 \
-e MYSQL_DB=Yearning \
-e Y_LANG=zh_CN \
yeelabs/yearning
参数说明:
IS_DOCKER
:标识容器化部署,必须设置为is_docker
SECRET_KEY
:应用加密密钥,建议修改为复杂字符串MYSQL_*
系列参数:连接MySQL数据库的配置Y_LANG
:界面语言,支持zh_CN
(中文)和en_US
(英文)-p8000:8000
:将容器8000端口映射到主机8000端口
初始化操作
首次部署时,需要执行初始化命令:
docker exec -it <container_id> /bin/bash -c "./Yearning install"
Docker Compose部署方案
对于生产环境,推荐使用Docker Compose部署,它能够更好地管理多个服务间的依赖关系。
docker-compose.yml配置示例
version: '3'
services:
yearning:
image: yeelabs/yearning:latest
environment:
MYSQL_USER: yearning
MYSQL_PASSWORD: ukC2ZkcG_ZTeb
MYSQL_ADDR: mysql
MYSQL_DB: yearning
SECRET_KEY: dbcjqheupqjsuwsm
IS_DOCKER: is_docker
ports:
- 8000:8000
# 首次使用请先初始化
# command: /bin/bash -c "./Yearning install && ./Yearning run"
depends_on:
- mysql
restart: always
mysql:
image: mysql:5.7
environment:
MYSQL_ROOT_PASSWORD: ukC2ZkcG_ZTeb
MYSQL_DATABASE: yearning
MYSQL_USER: yearning
MYSQL_PASSWORD: ukC2ZkcG_ZTeb
command:
- --character-set-server=utf8mb4
- --collation-server=utf8mb4_general_ci
volumes:
- ./data/mysql:/var/lib/mysql
部署步骤
- 创建docker-compose.yml文件并填入上述内容
- 首次部署执行:
docker-compose run --rm yearning /bin/bash -c "./Yearning install"
- 启动服务:
docker-compose up -d
高级管理操作
系统升级
当升级Yearning版本时,需要执行数据迁移:
docker-compose run --rm yearning /bin/bash -c "./Yearning migrate"
管理员密码重置
如果忘记管理员密码,可通过以下命令重置:
docker-compose run --rm yearning /bin/bash -c "./Yearning reset_super"
重置后默认账号密码为:
- 用户名:admin
- 密码:Yearning_admin
注意事项
- 生产环境务必修改所有默认密码和SECRET_KEY
- MySQL数据库建议配置持久化存储(如示例中的volumes配置)
- 首次初始化后,应移除或注释掉
command: /bin/bash -c "./Yearning install"
这一行 - 建议配置适当的日志收集和监控方案
- 对于高可用部署,应考虑数据库集群和Yearning的多实例部署
常见问题解答
Q: 为什么无法访问Yearning界面? A: 检查防火墙设置,确保8000端口已开放,并确认容器正常运行。
Q: 初始化失败怎么办? A: 检查MySQL连接配置是否正确,数据库服务是否可访问,并查看容器日志获取详细错误信息。
Q: 如何备份Yearning数据? A: 备份MySQL数据库即可,Yearning所有数据都存储在配置的数据库中。
通过本文介绍的Docker部署方法,您可以快速搭建一个功能完善的SQL审核平台。Yearning的Docker镜像已经过优化,包含了运行所需的所有依赖,大大简化了部署流程。