2017-08-24 25 views
0

我建立本地的RabbitMQ高山搬運工形象,看到完整的Dockerfile

 
RUN export GNUPGHOME="$(mktemp -d)" \ 
    && gpg --keyserver ha.pool.sks-keyservers.net --recv-keys B42F6819007F00F88E364FD4036A9C25BF357DD4 \ 
    && gpg --batch --verify /usr/local/bin/gosu.asc /usr/local/bin/gosu \ 
    && rm -r "$GNUPGHOME" /usr/local/bin/gosu.asc 

,並隨機I(主要是在詹金斯CI系統)得到了下面的錯誤

 
rm -rf /tmp/tmp.bBBnjn rabbitmq-server.tar.xz.asc 
rm: can't remove '/tmp/tmp.bBBnjn/S.gpg-agent.extra': No such file or directory 

 
rm -rf /tmp/tmp.GlfNBI rabbitmq-server.tar.xz.asc 
rm: can't remove '/tmp/tmp.GlfNBI/S.gpg-agent.ssh': No such file or directory 

它看起來像gpg代理只是在rm期間停止。 (它的存在時刪除,但消失的時候刪除發生)

我使用Ubuntu 16.04 LTS版本

 
$ docker info 
Containers: 2 
Running: 2 
Paused: 0 
Stopped: 0 
Images: 193 
Server Version: 1.12.6 
Storage Driver: overlay 
Backing Filesystem: extfs 
Logging Driver: json-file 
Cgroup Driver: cgroupfs 
.. 

這個任何解決方案?

+0

你不使用官方'rabbitmq'圖像的任何原因? –

+0

這主要是爲了示例的目的,並且我們也有輕微的小修改(高山,多個密鑰服務器以避免不穩定的網絡) –

+0

發佈實際的'Dockerfile',如果您發佈的只是例如。否則調試將很難 –

回答

3

將其更改爲下面的,它應該工作的所有時間

export GNUPGHOME="$(mktemp -d)"; \ 
     gpg --keyserver pgp.mit.edu --recv-keys "$GPG_KEY" || \ 
     gpg --keyserver keyserver.pgp.com --recv-keys "$GPG_KEY" || \ 
     gpg --keyserver ha.pool.sks-keyservers.net --recv-keys "$GPG_KEY" ; \ 
    gpg --batch --verify rabbitmq-server.tar.xz.asc rabbitmq-server.tar.xz; \ 
    pkill -9 gpg-agent; \ 
    pkill -9 dirmngr; \ 
    rm -rf "$GNUPGHOME"; 

gpg-agentdirmngr在後臺運行,有時需要時間的存在。我相信`rm會收集這些進程的文件,並在它試圖刪除守護進程和文件區域已經消失時。所以,加入這兩個pkill的應刪除錯誤

HTOP