apt-key命令在shell上运行正常,但在Dockerfile上失败。

13

在shell中运行以下命令似乎可以正常工作

apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF 

但是当以以下形式在 Dockerfile 中执行时却失败:

Warning: apt-key output should not be parsed (stdout is not a terminal)
Executing: /tmp/apt-key-gpghome.1CIuj3LUOP/gpg.1.sh --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF
gpg: cannot open '/dev/tty': No such device or address

特定的 Dockerfile RUN 命令在 openjdk:8 镜像上执行,该镜像又从 buildpack-deps:stretch-scm 中获取。

1个回答

18
通过在apt-key adv命令中添加--no-tty解决了问题。
不过,你有没有想过为什么会出现这个问题呢?

1
我认为这可能与此相关:https://github.com/docker-library/postgres/issues/526 - Billy
我相信他们也使用了--batch选项来修复它 https://github.com/nodejs/docker-node/issues/922 - Nicolò Gasparini
最近我遇到了一个类似的问题(只是错误信息不同),不得不采用--no-tty--batch的组合来解决它。 - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接