4
votes

I have setup an automated build on Docker hub here (the sources are here).

The build goes well locally. I have also tried to rebuild it with --no-cache option:

docker build --no-cache .

And the process completes successfully

Successfully built 68b34a5f493a

However, the automated build fails on Docker hub with this error log:

...
Cloning into 'nerdtree'...
[91mVim: Warning: Output is not to a terminal
[0m
[91mVim: Warning: Input is not from a terminal
[0m
[m[m[0m[H[2J[24;1HError detected while processing command line:
E492: Not an editor command: PluginInstall
E492: Not an editor command: GoInstallBinaries
[91mmv: cannot stat `/go/bin/*': No such file or directory
[0m

This build apparently fails on the following vim command:

vim +PluginInstall +GoInstallBinaries +qall

Note that the warnings Output is not to a terminal and Input is not to a terminal appears also in the local build.

I cannot understand how this can happen. I am using a standard Ubuntu 14.04 system.

1
Seems to me that you have figured it out.Sabin
@Cyborg You are right. I'll write an answer.mbrt

1 Answers

3
votes

I finally figured it out. The issue was related to this one.

I am using Docker 1.0 in my host machine, however a later version is in production in Docker Hub. Without the explicit ENV HOME=... line in the Dockerfile, version 1.0 uses / as home directory, while /root is used by the later version. The result is that vim was not able to find its .vimrc file, since it was copied in / instead of /root. The solution I used is to explicitly define ENV HOME=/root in my Dockerfile, so there are no differences between the two versions.