"cf ssh" 到 java buildpack 应用程序 - 如何 运行 使用 java 的脚本?

"cf ssh" into java buildpack app - how to run script that uses java?

我已经将 Keycloak-Server(作为 Wildfly Swarm 的一部分)部署到 Swisscom Cloud Foundry 环境(带有 Java 构建包)。

当我尝试访问 Keycloak 管理控制台时,出现以下错误:

"You need local access to create the initial admin user. Open http://localhost:8080/auth or use the add-user-keycloak script."

我该如何解决这个问题?

我能否以某种方式打开通向我的 Java buildpack 应用程序的 ssh 隧道,以便使用 http://localhost:8080 访问它?

我还尝试将 "cf login" 和 "cf ssh" 添加到我的应用程序中。我通过 copy/pasting 创建了 "add-user-kecloak.sh" 它。当我尝试执行它时,出现错误 "java command not found"?

这是脚本:https://github.com/keycloak/keycloak/blob/master/distribution/feature-packs/server-feature-pack/src/main/resources/content/bin/add-user-keycloak.sh

您可以使用 cf ssh 在您的容器中打开一个 ssh 隧道并访问一个 URL :cf ssh your-app -N -L 8080:localhost:8080.
这将监听您机器上的端口 8080,并将任何请求转发到您应用程序容器上的端口 8080。因此,您应该能够将浏览器指向 http://localhost:8080/auth 以访问控制台。

运行脚本可能有点复杂;至少 Java Buildpack 没有标准化它存储 java 可执行文件的位置,并且当你 cf ssh 进入容器时它没有添加到 PATH 中,所以你首先需要找到它。

我自己没有使用过 Keycloak,所以我的回答仅限于如何通过隧道进入您的应用程序容器以访问本地控制台。

无论哪种方式,请注意,如果此管理员用户保存到本地磁盘,而不是某些外部存储,则下次应用程序重新启动时(由您或系统将补丁应用到其 rootfs),您可能需要再经历一遍。