第一步: 安装JDK
第二步: 安装Docker
第三步: 部署 keycloak
写一个dockerfile
# docker file
FROM quay.io/keycloak/keycloak:19.0.3 as builder
# Enable health and metrics support
ENV KC_HEALTH_ENABLED=true # 设置健康检查启用标志为true
ENV KC_METRICS_ENABLED=true # 设置指标监控启用标志为true
# Configure a database vendor
ENV KC_DB=mysql # 设置数据库类型为mysql
WORKDIR /opt/keycloak
# for demonstration purposes only, please make sure to use proper certificates in production instead
# 仅用于演示目的,请确保在生产环境中使用正确的证书
RUN keytool -genkeypair -storepass password -storetype PKCS12 -keyalg RSA -keysize 2048 -dname "CN=server" -alias server -ext "SAN:c=DNS:localhost,IP:127.0.0.1" -keystore conf/server.keystore
RUN /opt/keycloak/bin/kc.sh build # 运行Keycloak的构建命令
FROM quay.io/keycloak/keycloak:19.0.3
COPY --from=builder /opt/keycloak/ /opt/keycloak/
# change these values to point to a running postgres instance
# 将这些值更改为指向正在运行的postgres实例
ENV KC_DB=mysql # 设置数据库类型为mysql
ENV KC_DB_URL=jdbc:mysql://你的IP:3306/keycloak21?characterEncoding=UTF-8&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai&useSSL=false # 设置数据库连接URL
ENV KC_DB_USERNAME=*** # 设置数据库用户名
ENV KC_DB_PASSWORD=**** # 设置数据库密码
ENV KC_HOSTNAME=localhost # 设置Keycloak的主机名
ENTRYPOINT ["/opt/keycloak/bin/kc.sh"] # 设置入口点为Keycloak的启动脚本
下载现有镜像
sudo docker pull quay.io/keycloak/keycloak:19.0.3
打包自定义镜像
#构建
cd /home/ubuntu/server/keycloak
sudo docker build -f dockerfile -t mykeycloak .
#移除旧的:
sudo docker rm -f mykeycloak
#运行:
sudo docker run --name mykeycloak -p 8445:8443 -p 8182:8080 -e KC_HOSTNAME=你的IP -e KC_HOSTNAME_PORT=8182 -e PROXY_ADDRESS_FORWARDING=true -e KC_PROXY=edge -e KC_DB=mysql -e KEYCLOAK_ADMIN=admin -e KEYCLOAK_ADMIN_PASSWORD=admin -e KC_DB_DRIVER=com.mysql.cj.jdbc.Driver -e KC_TRANSACTION_XA_ENABLED=false mykeycloak start-dev --features=token-exchange --db-url=jdbc:mysql://你的IP:3306/keycloak21?useSSL=false --db-username=****** --db-password=******
第四步开防火墙
开启云效的防火墙
ubuntu
1.打开终端命令行。
2.输入以下命令查看本地的端口开启情况。
sudo ufw status
3.再输入以下命令开启,比如打开80端口。
sudo ufw allow 80
4.再输入命令开启防火墙。
sudo ufw enable
5.最后重启防火墙即可。
sudo ufw reload
telnet 你的IP 8182
第五步 测试
http://你的IP/8182
第六步: 开放访问权限
效果图: