英文:
Gpg hangs when listing keys (docker install)
问题
我尝试设置一个Docker镜像来打包和加密文件。
我的问题是,当我尝试在Dockerfile中执行时,当我运行 gpg --list-keys
时,shell会挂起,什么都不会发生。
没有错误消息。我在日志中也没有看到任何信息。
我的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 gpg --import /public.asc
并直接在连接到容器的shell中运行它,然后运行 gpg --list-keys
,它能正常工作并返回密钥。
也许我在Docker构建镜像方面漏掉了一些东西?
英文:
I try to setup a docker image to tar and encrypt files.
My problem is when I try to do it with a Dockerfile, when I gpg --list-keys
, shell hangs and nothing happens.
There is no error message. I see nothing in logs.
My 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
If I delete the RUN gpg --import /public.asc
and run it directly into a shell attached to the container and then gpg --list-keys
, it's working fine and returning the key.
Maybe I'm missing something on how Docker is building the image ?
答案1
得分: 2
移除锁定文件解决了问题。
我的Dockerfile中的片段
密钥导入
RUN gpg --batch --import path_to_key.pub
移除锁定文件
RUN rm -f /home/my_user/.gnupg/public-keys.d/pubring.db.lock
在每次密钥导入后,您可能需要移除锁定文件。
英文:
Removing the lock file did the trick.
Snippet from my Dockerfile
Key Import
RUN gpg --batch --import path_to_key.pub
Removing the lock file
RUN rm -f /home/my_user/.gnupg/public-keys.d/pubring.db.lock
After each key import, you might have to remove the lock file.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论