如何将领域文件导出到keycloak docker容器中?

前端之家收集整理的这篇文章主要介绍了如何将领域文件导出到keycloak docker容器中?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我正在尝试将域文件导出到keycloak docker容器中,我无法这样做,因为执行此命令时服务器正在运行:

  1. bin/standalone.sh -Dkeycloak.migration.action=export
  2. -Dkeycloak.migration.provider=dir -Dkeycloak.migration.dir=

我试图修改docker-entrypoint.sh并删除执行服务器以启动的命令:

  1. #!/bin/bash
  2. if [ $KEYCLOAK_USER ] && [ $KEYCLOAK_PASSWORD ]; then
  3. keycloak/bin/add-user-keycloak.sh --user $KEYCLOAK_USER --password $KEYCLOAK_PASSWORD
  4. fi
  5. if [ "$DB_VENDOR" == "POSTGRES" ]; then
  6. databaseToInstall="postgres"
  7. elif [ "$DB_VENDOR" == "MysqL" ]; then
  8. databaseToInstall="MysqL"
  9. elif [ "$DB_VENDOR" == "H2" ]; then
  10. databaseToInstall=""
  11. else
  12. if (printenv | grep '^POSTGRES_' &>/dev/null); then
  13. databaseToInstall="postgres"
  14. elif (printenv | grep '^MysqL_' &>/dev/null); then
  15. databaseToInstall="MysqL"
  16. fi
  17. fi
  18. if [ "$databaseToInstall" != "" ]; then
  19. echo "[KEYCLOAK DOCKER IMAGE] Using the external $databaseToInstall database"
  20. /bin/sh /opt/jboss/keycloak/bin/change-database.sh $databaseToInstall
  21. else
  22. echo "[KEYCLOAK DOCKER IMAGE] Using the embedded H2 database"
  23. fi
  24. exit $?

但是当我运行keycloak的pod时,我得到了一个caschLoopBack.有没有解决方案在docker容器中导出并阻止服务器运行?

您可以启动一个临时容器.我正在使用swarm和可连接网络,但是将–network标志替换为数据库容器的一些–link应该为一个vanilla docker容器做:

  1. docker run --rm --network=naq\
  2. --name keycloak_exporter\
  3. -v /tmp:/tmp/keycloak-export\
  4. -e POSTGRES_DATABASE=keycloak\
  5. -e POSTGRES_PASSWORD=password\
  6. -e POSTGRES_USER=keycloak\
  7. -e DB_VENDOR=POSTGRES\
  8. -e POSTGRES_PORT_5432_TCP_ADDR=keycloakdb\
  9. jboss/keycloak:3.4.3.Final\
  10. -Dkeycloak.migration.action=export\
  11. -Dkeycloak.migration.provider=dir\
  12. -Dkeycloak.migration.dir=/tmp/keycloak-export\
  13. -Dkeycloak.migration.usersExportStrategy=SAME_FILE\
  14. -Dkeycloak.migration.realmName=Naq\

然后,您将在主机上的/ tmp目录中找到导出文件.

猜你在找的Docker相关文章