Docker 运行 失败 "returned a non-zero code: 6"

Docker RUN fails with "returned a non-zero code: 6"

我的 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 的命令,它将完美运行。

谁能告诉我如何解决这个问题?

退出代码 6 表示“主机 public 密钥未知。 sshpass 在未确认新密钥的情况下退出。 “

因此,您要么在此之前使用主机指纹填充 ~/.ssh/known_hosts,要么通过向 scp 添加 StrictHostKeyChecking=no 选项来忽略对主机 public 密钥的检查.

更新后的行如下所示:

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

同样的错误发生在我身上,但我的命令不同。

当我将 docker 升级到最新版本

时已修复