【问题标题】:"cf ssh" into java buildpack app - how to run script that uses java?“cf ssh”进入 java buildpack 应用程序 - 如何运行使用 java 的脚本?
【发布时间】:2018-07-12 20:01:32
【问题描述】:

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

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

“您需要本地访问权限才能创建初始管理员用户。打开 http://localhost:8080/auth 或使用 add-user-keycloak 脚本。”

我该如何解决这个问题?

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

我还尝试将“cf login”和“cf ssh”添加到我的应用程序中。我通过复制/粘贴创建了“add-user-kecloak.sh”。当我尝试执行它时,我收到错误“找不到 java 命令”?

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

【问题讨论】:

标签: cloud-foundry keycloak swisscomdev


【解决方案1】:

您可以使用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)时,您可能需要再次经历这个。

【讨论】:

  • 这与 ssh 隧道完美配合,谢谢!但是,您必须将参数“-B”更改为“-L”。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-12-16
  • 2017-08-09
  • 2019-12-16
  • 1970-01-01
  • 2015-08-17
  • 2023-04-04
  • 1970-01-01
相关资源
最近更新 更多