jhipster - KeyCloak Docker compose:禁用表的覆盖
问题描述
我正在尝试使用 docker compose 设置 Keycloak:
version: '2'
services:
keycloak:
image: jboss/keycloak:9.0.0
command:
[
'-b',
'0.0.0.0',
'-Dkeycloak.migration.action=import',
'-Dkeycloak.migration.provider=dir',
'-Dkeycloak.migration.dir=/opt/jboss/keycloak/realm-config',
'-Dkeycloak.migration.strategy=IGNORE_EXISTING',
'-Djboss.socket.binding.port-offset=1000',
'-Djboss.as.management.blocking.timeout=1000',
'-Dkeycloak.profile.feature.upload_scripts=enabled'
]
volumes:
- ./realm-config:/opt/jboss/keycloak/realm-config
environment:
- KEYCLOAK_USER=admin
- KEYCLOAK_PASSWORD=admin
- DB_VENDOR=MYSQL
- DB_ADDR=testmysqldb.mysql.database.azure.com
- DB_USER=testuser
- DB_PASSWORD=testpassword
- DB_DATABASE=keycloak
ports:
- 9080:9080
- 9443:9443
- 10990:10990
设置所有表需要很长时间,但最终会创建表。但是,一段时间后我的 jboss 启动超时。当我尝试重新启动容器时,出现以下错误:
错误 [org.keycloak.connections.jpa.updater.liquibase.conn.DefaultLiquibaseConnectionProvider] (ServerService 线程池 -- 68) 更改集 META-INF/jpa-changelog-authz-4.0.0.CR1.xml::authz-4.0 .0.CR1::psilva@redhat.com 失败。错误:表 'resource_server_perm_ticket' 已存在[失败的 SQL:CREATE TABLE keycloak_new.RESOURCE_SERVER_PERM_TICKET(ID VARCHAR(36) NOT NULL,OWNER VARCHAR(36) NOT NULL,REQUESTER VARCHAR(36) NOT NULL,CREATED_TIMESTAMP BIGINT NOT NULL,GRANTED_TIMESTAMP BIGINT NULL , RESOURCE_ID VARCHAR(36) NOT NULL, SCOPE_ID VARCHAR(36) NULL, RESOURCE_SERVER_ID VARCHAR(36) NOT NULL)] 15:08:40,541 致命 [org.keycloak.services] (ServerService 线程池 -- 68) java.lang。 RuntimeException:更新数据库失败
I am unable to find any solution for how to solve this error. Basically, once tables exist, I expect keycloak NOT to try overwriting them. I am sure I am missing config here. Can someone help me?
解决方案
Finally i solved it by running keycloak in standalone mode. It created the database structure without any timeout issues. Once database was created, I started keycloak in docker mode and connected to external database. It started without any problem.
推荐阅读
- javascript - 无法访问 JSON 对象
- html - 如何正确设置面板的最小高度和最大高度并隐藏任何溢出的内容?
- node.js - 将 [] 中的字符替换为另一个字符
- css - Thymeleaf 模板通过转义磅来解析模型属性 登录 CSS 文件
- c# - 通知用户 .exe 是针对比当前安装的更新版本的 .NET
- python - 熊猫系列的问题。尝试使用正则表达式剥离或替换
- powershell - 阅读第二个帐户的收件箱并在服务器上运行 Outlook?
- python - 如何在熊猫中按条件限制分组中的行数
- request - 空手道请求标头验证
- javascript - 这是在 ajax 请求中使用 onclick 函数的正确格式吗