当前位置: 首页 > 知识库问答 >
问题:

如何在使用Docker映像时为Keycloak设置PostgreSQL模式?

霍书
2023-03-14

我试图为Keycloak使用Docker映像,但似乎无法为PostgreSQL中创建的表设置模式。

目前,所有表都在公共模式中结束。是否有一种方法可以指示Keycloak在模式中创建表?

共有1个答案

墨宜人
2023-03-14

您应该能够为数据源指定postgres_databaseenv变量:

docker...-e postgres_database= ...

默认情况下,它应该使用数据库名称'keycloak',所以奇怪的是您没有看到:

/subsystem=datasources/data-source=KeycloakDS: add(jndi-name=java:jboss/datasources/KeycloakDS,enabled=true,use-java-context=true,use-ccm=true, connection-url=jdbc:postgresql://${env.POSTGRES_ADDR:postgres}:${env.POSTGRES_PORT:5432}/${env.POSTGRES_DATABASE:keycloak}, driver-name=postgresql)

对不起,我明白你的意思了。在这种情况下,我认为您必须在数据库中手动创建模式,然后更新standalone.xml以使用您的模式:

<spi name="connectionsJpa">
  <provider name="default" enabled="true">
    <properties>
      <property name="dataSource" value="java:jboss/datasources/KeycloakDS"/>
      <property name="initializeEmpty" value="true"/>
      <property name="migrationStrategy" value="update"/>
      <property name="migrationExport" value="${jboss.home.dir}/keycloak-database-update.sql"/>
      <property name="schema" value="your_schema"/>
    </properties>
  </provider>
</spi>

看起来它们不支持自动模式创建,所以您可能必须提交一个特性请求。

 类似资料:
  • 问题内容: 我正在尝试使用docker映像(https://hub.docker.com/r/jboss/keycloak/版本4.5.0-Final)部署keycloak,并面临设置SSL的问题。 根据文档 Keycloak映像允许您同时指定私钥和用于服务HTTPS的证书。在这种情况下,您需要提供两个文件: tls.crt- 证书 tls.key- 私钥这些文件需要挂载在/ etc / x509

  • 问题内容: 我想通过docker-compose建立映像并为其设置特定标签。文档说: Compose将使用生成的名称来构建并标记它,然后使用该图像。 但是我找不到指定标签的方法,对于生成的图像,我总是看到“最新”标签。 问题答案: 似乎文档/工具已更新,您现在可以将标记添加到脚本中。这对我来说是成功的。 例: https://docs.docker.com/compose/compose- fil

  • 假设我在Fedora中以的身份登录,我将从Dockerfile构建Docker映像。该映像将包含一个LAMP环境。我有一个Apache虚拟主机(VH)默认文件,如下所示: 作为构建过程的一部分,该文件被复制到图像上的适当位置。 我可以从主机获取登录用户名并动态设置到此VH吗?最后,我希望得到以下结果: 我知道我可以从bash中使用获取当前用户的值,但我如何在Docker构建中将其插入/设置到VH文

  • 我正在使用Postgres Docker的官方图片来定制它的配置。为此,我使用命令来更改,例如: 我尝试了两种方法来应用此配置。第一种方法是将命令添加到脚本中,并将其复制到init文件夹“/docker entrypoint initdb.d”中。第二种方法是使用“RUN”命令直接在Dockerfile中运行它们(该方法适用于非官方Postgresql映像,该映像具有指向配置文件“/etc/pos

  • 问题内容: 我正在使用官方的Postgres Docker映像 尝试自定义其配置。为此,我使用命令来更改例如: 我尝试了两种方法来应用此配置。第一种是通过将命令添加到脚本并将其复制到init文件夹“ /docker-entrypoint- initdb.d”中。第二种方法是通过使用“ RUN”命令直接在我的Dockerfile中运行它们(此方法在非官方的Postgresql映像(与配置文件“ /