删除$ 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 ..
这个任何解决方案?
答
将其更改为下面的,它应该工作的所有时间
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-agent
和dirmngr
在后台运行,有时需要时间的存在。我相信`rm会收集这些进程的文件,并在它试图删除守护进程和文件区域已经消失时。所以,加入这两个pkill的应删除错误
你不使用官方'rabbitmq'图像的任何原因? –
这主要是为了示例的目的,并且我们也有轻微的小修改(高山,多个密钥服务器以避免不稳定的网络) –
发布实际的'Dockerfile',如果您发布的只是例如。否则调试将很难 –