2015-04-22 29 views
0

我在構建過程中使用docker結合Java項目 編譯。 現在我想通過調用下面的shell腳本 的Dockerfile內部基於Collada的 XML架構1.5版Java代碼:在Dockerfile中運行JAXB/XJC在GConf中產生錯誤

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依賴。 這對我沒有意義。 如何避免這個問題?

回答

0

我解決了這個問題。實際上,DBus錯誤可以忽略不計。

問題是在xjc 試圖生成文件的目錄上沒有寫權限。 通過將所有權切換到Dockerfile中使用的用戶來修復它。