我已经通过运行 .yml
设置了我的 Keycloak 识别服务器使用 docker 镜像的文件 jboss/keycloak:9.0.0
.
现在我想进入容器并修改一些文件以进行一些测试。
不幸的是,当我进入正在运行的容器后,我意识到 一些非常基本的 UNIX 命令,如 sudo
或 vi
(以及更多)未找到 (以及像 apt-get
或 yum
这样的命令,我用来下载命令包但失败了)。
根据 this question ,看来容器的底层操作系统( Redhat Universal Base Image )使用了命令 microdnf
管理软件,但 不幸的是当我尝试使用此命令执行任何操作时,我收到以下消息:
error: Failed to create: /var/cache/yum/metadata
您能否为我的案例提出任何解决方法?我只需要使用像
vi
这样的文本编辑器命令,以及我的用户的 root 权限(所以命令如 sudo
、 su
或 chmod
)。提前致谢。
最佳答案
看起来您正在尝试在 docker 世界中使用来自非 docker(老派)世界的方法。那是不对的。通常,您无需前往容器并在那里编辑任何配置文件 - 更改很可能会丢失(这取决于容器配置)。容器通常通过环境变量或卷进行配置。
TLS 证书使用示例:Keycloak Docker HTTPS required
https://hub.docker.com/r/jboss/keycloak/检查可用环境变量也是一个很好的起点,这可能会帮助您实现所需。例如 PROXY_ADDRESS_FORWARDING=true
启用选项,当您可以在负载均衡器后面运行 Keycloak 容器时,无需接触任何配置文件。
我想说在构建中添加自己的配置文件也不是最好的选择——你必须维护自己的形象。只需使用来自主机操作系统文件系统的您自己的配置文件,在容器中使用卷和“覆盖”默认配置文件,例如:
-v /host-os-path/my-custom-standalone-ha.xml:/opt/jboss/keycloak/standalone/configuration/standalone-ha.xml
关于docker - Keycloak Docker 镜像基本 unix 命令不可用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67539305/