Docker运行失败,返回非零代码:6

11

我在我的 Docker 文件中有以下内容:

RUN sudo apt-get install sshpass -y
RUN sshpass -p userPassword scp -r user@server:~/data/* ./

但是当我尝试构建我的图像时,会出现以下错误:

Exception caught: The command '/bin/sh -c sshpass -p userPassword scp -r user@server:~/data/* ./' returned a non-zero code: 6 -> [Help 1]

然而,如果我删除这些行,构建镜像,ssh进入容器并手动从bash中运行命令,则可以完美地运行。

有人能告诉我如何解决这个问题吗?

2个回答

15

退出代码6表示“主机公钥未知。 sshpass退出,而不确认新密钥。”

因此,您可以在那之前使用主机的指纹填充~/.ssh/known_hosts,或者通过将 StrictHostKeyChecking=no选项添加到scp中忽略主机公钥检查。

更新后的行如下:

RUN sshpass -p userPassword scp -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -r user@server:~/data/* ./

我的这个回答:https://unix.stackexchange.com/a/323751/24044 看起来与此相关,并且据我所知,指向了相同的解决方案(尽管使用了不同的方法)。 - Marcus Junius Brutus

0

我也遇到了同样的错误,但我的命令不一样。

当我升级docker到最新版本时,问题就被解决了。


你的回答可以通过提供更多支持信息来改进。请编辑以添加进一步的细节,例如引用或文档,以便他人可以确认你的答案是正确的。您可以在帮助中心中找到有关如何编写良好答案的更多信息。 - Community
这并没有真正回答问题。如果您有不同的问题,可以通过点击提问来提出。如果您想在此问题获得新的答案时得到通知,您可以关注此问题。一旦您拥有足够的声望,您还可以添加悬赏以吸引更多关注。- 来自审核 - ryanwebjackson

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