Keycloak Docker容器无法从卷导入领域

时间:2018-11-07 12:14:42

标签: java docker keycloak

我想用下面的docker compose文件运行keycloak容器。

version: '2.1'

services:
  # keycloak
  keycloak:
    container_name: keycloak
    image: jboss/keycloak:latest
    restart: always
    ports:
      - 8080:8080
    volumes:
      - C:\logs\keycloak:/usr/app/logs
      - C:\settings:/etc/settings
    environment:
      - KEYCLOAK_USER=admin
      - KEYCLOAK_PASSWORD=admin
      - KEYCLOAK_IMPORT=/etc/settings/realm.json

在这种情况下,除领域导入之外的所有内容都可以正常工作。 这是容器运行过程中引发错误的快捷方式:

  

原因:java.lang.RuntimeException:RESTEASY003325:无法构造公共org.keycloak.services.resources.KeycloakApplication(javax.servlet.ServletContext,org.jboss.resteasy.core.Dispatcher)   引起原因:java.lang.RuntimeException:java.io.FileNotFoundException:/etc/settings/realm.json(是目录)   引起原因:java.io.FileNotFoundException:/etc/settings/realm.json(是目录)“}`

我确定文件在此位置。 我已经检查了几种不同的导入配置,例如指定导入的文件:C:\settings\realm.json:/etc/settings/realm.json,但结果相同。 您是否知道适当配置的外观如何?

2 个答案:

答案 0 :(得分:0)

已解决 看来该错误可以描述如下。 错误:文件已挂载为目录或已挂载的目录为空。 原因:密码更改为OS。 说明:由于系统的密码更改,Docker不能访问其正在使用的系统上的文件,毕竟毕竟是虚拟机。它也不会通知无法访问文件系统,只是以无效的方式显示安装的目录。

答案 1 :(得分:0)

我有同样的问题。这是由于我试图使用相对路径来装载卷。我通过用绝对路径替换所有相对路径来解决它。