0

我将 docker 与在构建过程中编译的 Java 项目结合使用。现在我正在尝试通过在 Dockerfile 中调用以下 shell 脚本来生成基于 Collada XML 模式版本 1.5 的 Java 代码:

BASEDIR=$(dirname $0)
xjc $BASEDIR/schema/collada/collada-schema-1.5.xsd \
    -d $BASEDIR/knowrob_vis/src/main/java \
    -p org.knowrob.vis.collada \
    -extension $BASEDIR/schema/simpleMode.xsd

不幸的是,这会产生以下错误:

(process:4093): GConf-WARNING **: Client failed to connect to the D-BUS daemon:
Unable to autolaunch a dbus-daemon without a $DISPLAY for X11
GConf Error: No D-BUS daemon running

在我的主机上,它可以很好地生成 Java 代码。您可以在此处找到 Dockerfile:https ://raw.githubusercontent.com/knowrob/docker/master/hydro-knowrob/hydro-knowrob-daemon_local/Dockerfile

EDIT1:似乎 xjc 有一些奇怪的 XServer 依赖项。这对我来说没有意义。如何避免这个问题?

4

1 回答 1

0

我解决了这个问题。事实上,DBus 错误可以忽略。

问题是对 xjc 尝试生成文件的目录没有写权限。通过将所有权切换到 Dockerfile 中使用的用户来修复它。

于 2015-04-22T12:34:13.587 回答