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 升级到最新版本
时已修复
我的 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 升级到最新版本
时已修复