我想用下面的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
,但结果相同。
您是否知道适当配置的外观如何?
答案 0 :(得分:0)
已解决 看来该错误可以描述如下。 错误:文件已挂载为目录或已挂载的目录为空。 原因:密码更改为OS。 说明:由于系统的密码更改,Docker不能访问其正在使用的系统上的文件,毕竟毕竟是虚拟机。它也不会通知无法访问文件系统,只是以无效的方式显示安装的目录。
答案 1 :(得分:0)
我有同样的问题。这是由于我试图使用相对路径来装载卷。我通过用绝对路径替换所有相对路径来解决它。