跳到主内容

(可选) 使用 Docker 运行

安装要求

硬件

如果你想自己构建Docker镜像,请确保你的机器至少有2GB的内存。 Casdoor的前端是一个React的NPM项目。 构建前端至少需要 2GB 的内存。 内存少于2GB可能会导致前端构建失败。

如果您只需要运行预构建的镜像,请确保您的机器至少有100MB的内存。

操作系统

所有操作系统(Linux,Windows和macOS)都受到支持。

Docker

您可以在 Linux 中使用 Docker (docker-engine 版本 >= 17.05),或在 Windows 和 macOS 中使用 Docker Desktop

无论操作系统如何,用户必须确保他们拥有docker-engine版本 >= 17.05。 这是因为我们在docker-compose.yml中使用了多阶段构建功能,该功能在17.05及以上版本中得到支持。 有关更多信息,请参见https://docs.docker.com/develop/develop-images/multistage-build/

如果您也在使用docker-compose,请确保您有docker-compose版本 >= 2.2。 对于Linux用户,您还需要确保已安装docker-compose,因为它与docker-engine是分开的。

获取镜像

我们提供了两个DockerHub 镜像:

名称描述建议
casdoor-all-in-one镜像中包含了Casdoor和MySQL数据库此图像已包含一个玩具数据库,仅用于测试目的
casdoor只有Casdoor被包含在图像中此图像可以连接到您自己的数据库,并在生产中使用
  1. casbin/casdoor-all-in-one: 这个镜像包含了casdoor二进制文件,一个MySQL数据库,以及所有必要的配置。 这是为了希望快速尝试Casdoor的新用户而设计的。 有了这个镜像,您只需一两个命令就可以立即启动Casdoor,无需任何复杂的配置。 然而,请注意,我们不建议在生产环境中使用此图像。

选项 1: 使用示例数据库

运行容器,并将8000端口暴露给主机。 如果本地主机上不存在该图像,系统将会自动拉取。

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

在您的浏览器中访问 http://localhost:8000。 使用默认的全局管理员账户:built-in/admin登录Casdoor控制面板

admin
123

选项-2:尝试直接使用标准图像

提示

如果将配置文件挂载到容器不方便,使用环境变量也是一种可能的解决方案。

example

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

创建conf/app.conf。 您可以从Casdoor的conf/app.conf中复制它。 ``有关app.conf`的更多详

然后运行

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

无论如何,只需将 app.conf 挂载到 /conf/app.conf,然后启动容器。

在您的浏览器中访问 http://localhost:8000。 使用默认的全局管理员账户:built-in/admin登录Casdoor控制面板

admin
123

选项-3:尝试使用docker-compose

在与docker-compose.yml文件相同的目录级别中创建一个conf/app.conf目录。 然后,从Casdoor复制app.conf。 有关app.conf的更多详细信息,您可以查看通过Ini文件

使用docker-compose创建一个单独的数据库:

docker-compose up

这样就完成了! 🛩️

在您的浏览器中访问 http://localhost:8000。 使用默认的全局管理员账户:built-in/admin登录Casdoor控制面板

admin
123
备注

如果你深入研究docker-compose.yml文件,我们创建的名为“RUNNING_IN_DOCKER”的环境变量可能会让你感到困惑。 当通过docker-compose创建数据库'db'时,它在你的PC的localhost上可用,但不在Casdoor容器的localhost上可用。 为了防止您因修改app.conf而遇到麻烦,这对新用户来说可能相当困难,我们提供了这个环境变量,并在docker-compose.yml中预先分配了它。 当此环境变量设置为true时,localhost将被替换为host.docker.internal,以便Casdoor可以访问数据库。