一. 开发环境部署
前提条件
1)在centos8上安装好docker(由于centos 8自带java sdk1.8,而keycloak需要java sdk 11及以上,所以这里选择使用docker来做宿主)
2)准备好mysql连接地址,并创建"keycloak"库名
1.1 部署
默认是8080端口,由于我服务器8080端口已被占用,所以对外开放8081端口。
docker run -d -p 8081:8080 -e KEYCLOAK_ADMIN=admin -e KEYCLOAK_ADMIN_PASSWORD=Adm@kfk -e KEYCLOAK_ENABLE_TLS=false quay.io/keycloak/keycloak:20.0.1 start-dev
成功后会创建一个容器,此时数据库是使用的默认h2数据库,需要改成mysql数据库, 解决方案二种:
1)进入容器,修改keycloak.conf配置,参考:https://www.cnblogs.com/MrHSR/p/16934613.html
2)命令中直接指定mysql的地址,命令如下(如果上面命令执行了,就先删除原有keycloak容器): 开发环境下加上参数 KEYCLOAK_ENABLE_TLS=false,不使用https连接。
docker run -d -p 8081:8080 -e KEYCLOAK_ADMIN=admin -e KEYCLOAK_ADMIN_PASSWORD=Adm@kfk -e KEYCLOAK_ENABLE_TLS=false quay.io/keycloak/keycloak:20.0.1 start-dev --db mysql --db-url-host rm-xxx0f7ut8lvxa3771zo.mysql.rds.aliyuncs.com --db-url-port 3306 --db-username kcuser --db-password kcuser@keycloak#xxx --db-url-database keycloak
1.2 执行成功后,查看启动是否正确,如下所示:
1.4 查看数据库keycloak下生成的表,如下所示(截取了一半):
1.4 修改keycloak数据库表
部署后,首次访问web站点时需要ssl requred,修改命令如下:
-- ssl_required=EXTERNAL改为NONE
update REALM set ssl_required='NONE' where id = '11dc2b4d-734b-4f76-8027-ac0f7a2c0755';
二.登录
http://47.106.160.xxx:8081/ 点击进入Administration Console 进入管理控制台登录页,由于上面环境变量初始化用户名和密码使用的是admin和Adm@kfk,所以使用这个账号登录。如下所示:
参考文档: 开发环境docker配置