删除$ GNUPGHOME错误打造

问题描述:

我建立本地的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',如果您发布的只是例如。否则调试将很难 –

将其更改为下面的,它应该工作的所有时间

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