首页
/ Casdoor项目Docker Compose部署指南

Casdoor项目Docker Compose部署指南

2025-07-06 04:36:50作者:殷蕙予

前言

Casdoor作为一个开源的统一身份认证系统,采用Docker Compose部署可以极大地简化部署流程。本文将深入解析官方提供的docker-compose.yml文件,帮助开发者理解其架构设计并掌握部署要点。

文件结构解析

该docker-compose.yml文件定义了两个核心服务:

  1. Casdoor应用服务:基于项目Dockerfile构建的身份认证主服务
  2. MySQL数据库服务:作为Casdoor的后端数据存储

服务配置详解

Casdoor应用服务配置

casdoor:
  restart: always
  build:
    context: ./
    dockerfile: Dockerfile
    target: STANDARD
  entrypoint: /bin/sh -c './server --createDatabase=true'
  ports:
    - "8000:8000"
  depends_on:
    - db
  environment:
    RUNNING_IN_DOCKER: "true"
  volumes:
    - ./conf:/conf/

关键配置说明:

  • restart策略:设置为always确保服务异常退出后自动重启
  • 构建配置:使用项目根目录下的Dockerfile,指定STANDARD构建目标
  • 启动命令:通过entrypoint指定启动时自动创建数据库表结构
  • 端口映射:将容器内8000端口映射到主机8000端口
  • 依赖关系:明确依赖db服务,确保数据库先启动
  • 环境变量:RUNNING_IN_DOCKER标志告知应用运行在Docker环境
  • 数据卷:将本地conf目录挂载到容器内,便于配置管理

MySQL数据库服务配置

db:
  restart: always
  image: mysql:8.0.25
  platform: linux/amd64
  ports:
    - "3306:3306"
  environment:
    MYSQL_ROOT_PASSWORD: 123456
  volumes:
    - /usr/local/docker/mysql:/var/lib/mysql

关键配置说明:

  • 镜像版本:使用MySQL 8.0.25官方镜像
  • 平台指定:明确使用linux/amd64架构
  • 端口映射:标准MySQL 3306端口映射
  • root密码:通过环境变量设置初始密码(生产环境应修改)
  • 数据持久化:将数据库文件存储在宿主机目录,避免容器销毁数据丢失

部署实践建议

  1. 安全加固

    • 修改默认的MySQL root密码
    • 考虑添加MySQL用户权限限制
    • 为Casdoor服务配置适当的防火墙规则
  2. 性能优化

    • 根据实际负载调整MySQL内存参数
    • 考虑添加Redis缓存层
  3. 高可用考虑

    • 对于生产环境,建议配置MySQL主从复制
    • 可以添加Nginx作为反向代理和负载均衡
  4. 配置管理

    • 通过挂载的conf目录可以灵活修改应用配置
    • 建议将敏感配置通过环境变量注入

常见问题排查

  1. 数据库连接问题

    • 检查db服务是否正常启动
    • 验证网络连接和端口映射
    • 查看Casdoor日志中的数据库连接错误
  2. 初始化失败

    • 确认--createDatabase=true参数是否生效
    • 检查数据库用户权限是否足够
  3. 性能问题

    • 监控数据库性能指标
    • 考虑优化MySQL配置参数

结语

通过这份docker-compose.yml文件,开发者可以快速搭建Casdoor的完整运行环境。理解每个配置项的含义有助于根据实际需求进行定制化调整。建议在生产部署前充分测试,并根据具体场景优化配置参数。