无法在 Minishift (1.34.0) 上部署 Keycloak (9.0.0):keycloak-add-user.json权限被拒绝

问题描述

我无法在 Minishift (v1.34.0+f5db7cb) 上启动 Keycloak (9.0.0) 并且崩溃循环回退 错误。此部署将与 Postgres 部署集成。

Keycloak Pod 日志:

/opt/jboss/keycloak/standalone/configuration/keycloak-add-user.json(权限被拒绝)

这是我通过控制台 (oc apply -f) 部署的 yaml 文件

apiVersion: apps/v1
kind: Deployment
Metadata:
  annotations:
    kompose.cmd: kompose convert
    kompose.version: 1.16.0 (0c01309)
  creationTimestamp: null
  labels:
    io.kompose.service: keycloak
  name: keycloak
spec:
  selector:
    matchLabels:
      io.kompose.service: keycloak
  replicas: 1
  strategy: {}
  template:
    Metadata:
      creationTimestamp: null
      labels:
        io.kompose.service: keycloak
    spec:
      containers:
      - env:
        - name: DB_ADDR
          value: postgres
        - name: DB_DATABASE
          value: keycloak
        - name: DB_PASSWORD
          value: password
        - name: DB_SCHEMA
          value: public
        - name: DB_USER
          value: keycloak
        - name: DB_vendOR
          value: POSTGRES
        - name: KEYCLOAK_LOGLEVEL
          value: DEBUG
        - name: KEYCLOAK_PASSWORD
          value: Pa55w0rd
        - name: KEYCLOAK_USER
          value: admin
        image: localhost:5000/keycloak
        name: keycloak
        ports:
        - containerPort: 8080
        - containerPort: 8443
        resources: {}
      restartPolicy: Always
status: {}

---
apiVersion: v1
kind: Service
Metadata:
  annotations:
    kompose.cmd: kompose convert
    kompose.version: 1.16.0 (0c01309)
  creationTimestamp: null
  labels:
    io.kompose.service: keycloak
  name: keycloak
spec:
  ports:
  - name: "8880"
    port: 8880
    targetPort: 8080
  - name: "8888"
    port: 8888
    targetPort: 8443
  type: LoadBalancer
  selector:
    io.kompose.service: keycloak

有什么办法可以解决这个问题吗?提前致谢!

解决方法

keycloak-add-user.jsonKEYCLOAK_HOME/bin/add-user-keycloak.sh 实用程序生成。 Keycloak 服务器在启动时会检查此文件是否存在,如果找到,将添加指定的用户。

反过来,Keycloak pod 在启动期间会解析是否存在用于创建用户的变量,例如 KEYCLOAK_USERKEYCLOAK_PASSWORD,如果存在,将使用这些参数调用 add-user-keycloak.sh 实用程序以创建用户。

因此,在您的情况下,您应该使 /opt/jboss/keycloak/standalone/configuration 目录可写。