列出密钥时 Gpg 挂起(docker 安装)

Rem*_*emi 2 gnupg dockerfile alpine-linux

我尝试设置一个 docker 映像来压缩和加密文件。

我的问题是,当我尝试使用 Dockerfile 执行此操作时,gpg --list-keysshell 挂起并且没有任何反应。

没有错误消息。我在日志中看不到任何内容。

我的 Dockerfile :

FROM alpine:3
COPY public.asc /
RUN apk add --no-cache gnupg openssh && ssh-keygen -A && mkdir /root/.ssh
ENTRYPOINT ["/entrypoint.sh"]
EXPOSE 22/tcp
COPY entrypoint.sh /
RUN gpg --import /public.asc
Run Code Online (Sandbox Code Playgroud)

如果我删除RUN gpg --import /public.asc并将其直接运行到附加到容器的 shell 中,然后运行gpg --list-keys​​,它工作正常并返回密钥。

也许我遗漏了 Docker 如何构建镜像的一些内容?

小智 5

删除锁定文件就可以了。

我的 Dockerfile 中的片段

密钥导入

RUN gpg --batch --import path_to_key.pub
Run Code Online (Sandbox Code Playgroud)

删除锁定文件

RUN rm -f /home/my_user/.gnupg/public-keys.d/pubring.db.lock
Run Code Online (Sandbox Code Playgroud)

每次导入密钥后,您可能必须删除锁定文件。