在Dockerfile构build期间删除$ GNUPGHOME错误
我在本地构buildrabbitMQ高山docker镜像,请参阅完整的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
随机我得到错误(主要在jenkinsCI系统)
rm -rf /tmp/tmp.bBBnjn rabbitmq-server.tar.xz.asc rm:无法删除'/tmp/tmp.bBBnjn/S.gpg-agent.extra':没有这样的文件或目录
要么
rm -rf /tmp/tmp.GlfNBI rabbitmq-server.tar.xz.asc rm:无法删除'/tmp/tmp.GlfNBI/S.gpg-agent.ssh':没有这样的文件或目录
看起来gpg代理刚刚在rm中停止。 (删除时存在,删除时删除)
我使用Ubuntu 16.04 LTS版本
$ docker信息 容器:2 运行:2 暂停:0 停止:0 图片:193 服务器版本:1.12.6 存储驱动程序:覆盖 备份文件系统:extfs logging驱动程序:json文件 Cgroup驱动程序:cgroupfs ..
任何解决scheme?
将其更改为下面,它应该一直工作
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应该删除错误