一、硬件要求

根据使用场景不同,Casdoor 对硬件内存的要求存在差异,具体如下:

  • 自主构建 Docker 镜像:由于 Casdoor 前端基于 React 开发(属 NPM 项目),构建过程需消耗一定内存,建议机器内存不低于 2GB,内存不足 2GB 可能导致前端构建失败。
  • 仅运行预构建镜像:无需构建过程,资源消耗较低,机器内存不低于 100MB 即可满足运行需求。

二、操作系统兼容性

Casdoor 对操作系统无特殊限制,全面支持 Linux、Windows 及 macOS 三大主流系统,用户可根据自身使用习惯选择对应系统部署。

三、Docker 环境要求

部署 Casdoor 需依赖 Docker 环境,不同系统的安装方式及版本要求如下:

  • 基础版本要求:无论使用何种操作系统,均需确保 Docker 引擎版本 ≥ 17.05。这是因为配置文件 docker-compose.yml 中采用了多阶段构建功能,该功能仅在 17.05 及以上版本的 Docker 中支持。更多关于多阶段构建的细节,可参考 Docker 官方文档
  • 系统适配方式:Linux 系统可直接安装 Docker 引擎(docker-engine);Windows 与 macOS 系统建议安装 Docker Desktop,集成度更高且操作更便捷。
  • Docker Compose 要求:若需使用 docker-compose 进行部署,需确保其版本 ≥ 2.2。需注意,Linux 系统中 Docker Compose 与 Docker 引擎为独立组件,需单独安装。

四、Docker 镜像获取

官方在 DockerHub 提供了两款 Casdoor 镜像,适用于不同使用场景,具体说明如下:

镜像名称具体描述适用建议
casdoor-all-in-one集成 Casdoor 核心程序与 MySQL 数据库,内置测试用玩具数据库适合新用户快速体验 Casdoor,无需额外配置数据库
casdoor仅包含 Casdoor 核心程序,无内置数据库需连接自定义数据库,适合生产环境部署使用

其中,casbin/casdoor-all-in-one 镜像为一站式体验方案,整合了 Casdoor 二进制文件、MySQL 数据库及全套默认配置,新用户可通过一两行命令快速启动服务,无需复杂配置。但需注意,该镜像内置数据库仅用于测试,不建议在生产环境中使用。

五、部署方式说明

方式一:使用集成测试数据库部署(快速体验)

通过 casdoor-all-in-one 镜像部署,可直接启动包含测试数据库的服务,同时将容器 8000 端口映射至主机,若本地无该镜像,系统会自动从 DockerHub 拉取。执行命令如下:

docker run -p 8000:8000 casbin/casdoor-all-in-one

服务启动后,在浏览器访问 http://localhost:8000,使用默认全局管理员账号登录控制台:

  • 用户名:admin
  • 密码:123

方式二:使用标准镜像部署(自定义数据库)

提示:若不便将配置文件挂载至容器,可通过设置环境变量配置数据库连接信息,灵活适配部署需求。

示例 1:通过环境变量配置

docker run \
  -e driverName=mysql \
  -e dataSourceName='user:password@tcp(x.x.x.x:3306)/' \
  -p 8000:8000 \
  casbin/casdoor:latest

示例 2:通过挂载配置文件部署

首先创建配置文件 conf/app.conf,可从 Casdoor 官方仓库复制默认配置文件进行修改。app.conf 采用 Ini 格式,核心配置项及说明如下,覆盖数据库、服务、安全等关键场景,适配生产及测试需求:

核心配置项说明
# 数据库配置(必配)
driverName = mysql  # 数据库驱动,支持 mysql、postgres、sqlite3、sqlserver
dataSourceName = root:123456@tcp(localhost:3306)/casdoor?charset=utf8mb4&parseTime=True&loc=Local  # 连接串
# 若使用 SQLite,配置示例:dataSourceName = casdoor.db (文件路径,挂载时需注意权限)

# 服务基础配置
httpport = 8000  # 服务监听端口,需与容器映射端口一致
runmode = dev  # 运行模式,dev(开发)/prod(生产),prod模式下日志输出更简洁
sessiontimeout = 3600  # Session 超时时间(秒),默认1小时

# 安全配置
secret = 1234567890abcdef  # 密钥,用于签名Token、加密数据,生产环境需替换为复杂随机字符串
cors = true  # 是否允许跨域请求,前端与后端分离部署时需设为true
corsAllowOrigins = *  # 允许跨域的源地址,生产环境建议指定具体域名(如https://your-domain.com)

# 日志配置
logfile = logs/casdoor.log  # 日志文件路径
loglevel = info  # 日志级别,支持 debug、info、warn、error
logrotate = true  # 是否开启日志轮转,避免日志文件过大

# Docker 环境适配配置(配合Docker Compose使用)
runningInDocker = false  # 是否在Docker环境运行,通过Docker Compose部署时会自动设为true
dbHost = host.docker.internal  # Docker环境下数据库主机地址,无需手动修改

配置说明:1. 数据库连接串需根据实际数据库账号、密码、地址调整,不同驱动的连接串格式略有差异;2. 生产环境中,需将 runmode 设为 prod,secret 替换为随机生成的32位及以上字符串,同时限制 corsAllowOrigins 为指定域名,提升安全性;3. 若使用 SQLite 数据库,dataSourceName 直接填写数据库文件名称,且需确保容器对挂载目录有读写权限。

配置完成后,执行以下命令启动容器,将本地配置文件目录挂载至容器对应路径:

docker run -p 8000:8000 -v /folder/of/app.conf:/conf casbin/casdoor:latest

备注:Casdoor 容器默认使用 UID 和 GID 为 1000 的用户运行。若使用 SQLite 数据库或其他需要文件权限的存储方式,需确保挂载路径(如上例中的 /folder/of/app.conf)对 UID 1000 有访问权限,避免 Casdoor 写入挂载目录时出现“权限拒绝”错误。

服务启动后,同样访问 http://localhost:8000,使用上述默认管理员账号登录。

方式三:使用 Docker Compose 部署

  1. 在 docker-compose.yml 文件同级目录下创建 conf/app.conf 目录,复制 Casdoor 官方默认配置文件至该目录并完成自定义配置(配置细节参考 Ini 文件配置指南)。
  2. 执行以下命令,通过 docker-compose 启动服务,自动创建独立数据库容器并完成关联:
docker-compose up

服务启动成功后,访问 http://localhost:8000,使用默认管理员账号(admin/123)登录控制台即可。

补充说明:在 docker-compose.yml 文件中,官方定义了 RUNNING\_IN\_DOCKER 环境变量。该变量用于解决容器网络访问问题——通过 docker-compose 创建的“db”数据库容器,可在主机 localhost 访问,但无法在 Casdoor 容器内通过 localhost 访问。设置该变量为 true 后,系统会自动将 localhost 替换为 host.docker.internal,确保 Casdoor 正常连接数据库,降低新用户配置难度。

END

本文标题:Casdoor Docker 安装指南

本文链接:https://www.imsuk.cn/archives/90/

除非另有说明,本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议

声明:转载请注明文章来源。

Last modification:January 31, 2026
请用钱砸我