首页 > 解决方案 > 如何在 kubernetes 的 init 容器中运行 sed 命令?

问题描述

我的集群中正在运行 keycloak,所以我想将默认的 context-web 路径更改为类似 keycloak/auth 的身份验证,这样我就可以通过 myhost/keycloak/auth/ 访问它我添加了一个 init 容器来运行这个命令,但是它给我看:

来自服务器的错误(BadRequest):pod“keycloak-6df9d8968d-l7t9b”中的容器“keycloak”正在等待启动:PodInitializing

我认为 init 容器中的命令语法是错误的,因为我手动尝试了它并且它有效

这是初始化容器:

...
initContainers:
       - name: keycloak-init
         image: busybox
         command: [sed, -i, -e, 's/<web-context>auth<\/web-context>/<web-context>keycloak\/auth<\/web-context>/', /opt/jboss/keycloak/standalone/configuration/standalone.xml]
...

标签: shellkuberneteskeycloak

解决方案


主容器未启动,因为容器中存在错误initContainer,正如您从logs.

sed: /opt/jboss/keycloak/standalone/configuration/standalone.xml: No such file or directory 

可能您忘记在 initContainer 中也使用此文件安装卷


推荐阅读