使用PostgreSQL在Docker中运行Keycloak:配置错误

bz4sfanl  于 2024-01-06  发布在  Docker
关注(0)|答案(2)|浏览(180)

我试图在Docker容器中使用PostgreSQL作为数据库运行Keycloak,但遇到了一个配置错误,无法解决。

docker run --name mykeycloak -p 8080:8080 \
  -e KEYCLOAK_ADMIN=admin \
  -e KEYCLOAK_ADMIN_PASSWORD=admin \
  -e DB_ADDR=localhost \
  -e DB_PORT=5432 \
  -e DB_DATABASE=wallet_realm \
  -e DB_USER=postgres \
  -e DB_PASSWORD=postgres \
  quay.io/keycloak/keycloak:latest \
  start \
  --db=postgres \
  --features=token-exchange \
  --db-url=jdbc:postgresql://localhost:5432/wallet_realm \
  --db-username=postgres \
  --db-password=postgres

字符串
错误代码:无法运行“build”命令。错误:无法调用“io.smallrye.config.ConfigValue.withConfigSourceName(String)”,因为“org.keycloak.quarkus.runtime.configuration.mappers.PropertyMapper.transformValue”的返回值(字符串,java.util。可选,io.smallrye.config.ConfigSourceInterceptorContext)”为null有关详细信息,请运行相同的命令,并传递“--verbose”选项。此外,您可以使用“--帮助'查看有关特定命令用法的详细信息。

2nc8po8w

2nc8po8w1#

这似乎是keycloak-23中的一个问题参见https://github.com/keycloak/keycloak/issues/25010
它是由使用--db-username参数引起的。
我绕过了它,在db-url参数中传递了用户名,这是用户oleastre在上面的帖子中建议的。

docker run --name mykeycloak -p 8087:8080  -e KEYCLOAK_ADMIN=admin  -e KEYCLOAK_ADMIN_PASSWORD=admin  -e KC_DB_ADDR=localhost -e KC_DB_DATABASE=keycloak_docker   -e KC_DB_PASSWORD=Asdf1234!  quay.io/keycloak/keycloak:latest start-dev  --db=postgres  --db-url jdbc:postgresql://pc-00080.myorg.de:5432/keycloak_docker?user=postgres  --db-password xxx  --hostname pc-00080.myorg.de  --log-level WARN

字符串
或者你使用kc-22直到有一个补丁。顺便说一句:keycloak环境变量现在以KC_.

blmhpbnm

blmhpbnm2#

我在本周从21.1.2更新到23.0.1时也遇到了同样的问题。之前,我在Dockerfile的CMD部分设置了--db-username参数。我删除了它,并在kubernetes.yaml中设置了KC_DB_USERNAME。现在它工作得很好!

相关问题