Magit无法连接到Docker内部的emacsclient?

我正在Docker中运行emacs24.5.1(基本映像是Ubuntu)。 我通过apt-get安装了emacs。 此外,我通过melpa(magit版本magit-20170702.858)安装了magit,非常棒。 但是,当我尝试提交的东西,然后magit遇到以下错误:

1 git ? commit -- /usr/bin/emacsclient.emacs24: connect: Connection refused /usr/bin/emacsclient.emacs24: error executing alternate editor "sh -c 'echo "WITH-EDITOR: $$ OPEN $0"; sleep 604800 & sleep=$!; trap "kill $sleep; exit 0" USR1; trap "kill $sleep; exit 1" USR2; wait $sleep'" error: There was a problem with the editor '/usr/bin/emacsclient.emacs24 --socket-name=/root/.emacs.d/server/server'. Please supply the message using either -m or -F option. 

当我尝试手动启动emacsclient然后emacsclient有错误:

 /usr/bin/emacsclient.emacs24 --socket-name=/root/.emacs.d/server/server tmp.make /usr/bin/emacsclient.emacs24: connect: Connection refused /usr/bin/emacsclient.emacs24: error accessing socket "/root/.emacs.d/server/server" 

这表明这不是一个真正的错误,而是一个emacsclient错误,实际上可能是因为我在Docker中运行,尽pipe我不确定。

有没有人有一个关于如何启动emacsclient或绕过magma内的emacsclient的要求的想法。 曾经有一个插件模式绕过emacsclient里面的magit,但这是过时,从melpa从前一段时间,从而我不太热衷尝试它。

更新 emacs --daemon守护进程启动没有问题在docker,但磁道提交仍然不工作,所以也许这不是一个docker问题?

 emacs --daemon Warning: due to a long standing Gtk+ bug http://bugzilla.gnome.org/show_bug.cgi?id=85715 Emacs might crash when run in daemon mode and the X11 connection is unexpectedly lost. Using an Emacs configured with --with-x-toolkit=lucid does not have this problem. Loading 00debian-vars... Loading 00debian-vars...done Loading /etc/emacs/site-start.d/50cmake-data.el (source)... Loading /etc/emacs/site-start.d/50cmake-data.el (source)...done Loading /etc/emacs/site-start.d/50dictionaries-common.el (source)... Loading debian-ispell... Loading /var/cache/dictionaries-common/emacsen-ispell-default.el (source)... Loading /var/cache/dictionaries-common/emacsen-ispell-default.el (source)...done Loading debian-ispell...done Loading /var/cache/dictionaries-common/emacsen-ispell-dicts.el (source)... Loading /var/cache/dictionaries-common/emacsen-ispell-dicts.el (source)...done Loading /etc/emacs/site-start.d/50dictionaries-common.el (source)...done Loading /root/.emacs.d/init_func.el (source)... Loading /root/.emacs.d/init_func.el (source)...done Loading flymake... Loading flymake...done Loading company... Loading company...done Loading linum... Loading linum...done [yas] Prepared just-in-time loading of snippets successfully. Loading /root/.emacs.d/recentf... Loading /root/.emacs.d/recentf...done Cleaning up the recentf list... Cleaning up the recentf list...done (0 removed) Starting Emacs daemon. 

仔细检查您的基本图像: 此线程报告看到相同的错误信息:

我设法弄清楚了这个问题。 我有字节编译emacs代码与emacs24,并加载在emacs23导致所有赫克松散。
通过emacs的匹配版本完成字节编译,testing套件通过。

你可以在这里find一个使用emacs从各种发行版 (包括Ubuntu 16.04) 构buildDocker镜像的例子 。
Emacs(23,将其replace为您的版本) 安装为 :

 export DEBIAN_FRONTEND=noninteractive test $1 = 7.11 && emacs=emacs23-nox || emacs=emacs-nox apt-get update apt-get install -y -q build-essential git \ libxapian-dev libgmime-2.6-dev libtalloc-dev \ zlib1g-dev python-sphinx man dtach $emacs gdb gpgsm apt-get -y autoremove apt-get -y clean rm -rf /var/lib/apt/lists/