使用 Docker 运行的 Keycloak 从 v20 升级到 v21 时遇到问题。自更新以来,Docker 容器运行状况检查失败,我无法确定原因。
我已阅读迁移文档,但无法找到会破坏运行状况检查的更改。
我的所有其他配置都保持不变,并且都适用于 v20。这让我相信这绝对是 v21 中的一个重大变化。
似乎 Keycloak v21 使用了缩小的图像,其中不再包含curl命令。这之前用于对本地主机执行健康检查。
我发现这个关于这个问题的讨论(https://github.com/keycloak/keycloak/issues/17273)。如果有兴趣的话,它可以提供对这些变化的更多了解。
用户提供了一个 bash 脚本来执行类似的健康检查:
#!/bin/bash
exec 3<>/dev/tcp/localhost/8080
echo -e "GET /auth/health/ready HTTP/1.1\nhost: localhost:8080\n" >&3
timeout --preserve-status 1 cat <&3 | grep -m 1 status | grep -m 1 UP
ERROR=$?
exec 3<&-
exec 3>&-
exit $ERROR
Run Code Online (Sandbox Code Playgroud)
一些注意事项:
如果您在 ECS 上启动它,则任务定义的运行状况检查块的定义应类似于以下内容:
"healthCheck": {
"command": [
"CMD-SHELL",
"bash /complete/path/to/healthcheck/script"
],
"interval": **,
"timeout": **,
"retries": **,
"startPeriod": **
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3252 次 |
| 最近记录: |