【发布时间】:2020-03-16 23:13:27
【问题描述】:
我有一个 dockerfile:(这些是相关命令)
RUN apk app --update bash openssh sshpass
CMD ["bin/sh", "/home/build/build.sh"]
我的 dockerfile 是由这个命令运行的
docker run --rm -it -v $(pwd):/home <image-name>
和我的 bash 脚本中的所有命令,在已安装的卷中执行。这些命令的范围从 npm 安装到使用 tar 压缩文件,我想 SFTP 那个 tar.gz 文件。
我正在使用 sshpass 自动登录,我知道这是不安全的,但我并不担心这个应用程序。
sshpass -p <password> sftp -P <port> username@host << EOF
<command>
<command>
EOF
但是 sshpass 命令永远不会执行。我已经通过将 /bin/sh 附加到它并尝试它来测试我的 docker run 命令,它也没有运行。 SFTP 命令本身就可以。
当我说它从未被执行时,我没有收到错误或任何东西。
【问题讨论】:
-
show build.sh,在此命令之前是否有任何进程正在运行并且该进程在前台运行?
-
目前我已将大部分内容都注释掉了,但剩下的内容是
chmod +x /home/build/build.shDATE=$(date +%Y-%m-%d)TARGET="build-$DATE.tar.gz")然后是我的 sshpass 命令 -
如果我使用 scp 而不是 sftp 我至少会得到主机密钥验证失败
标签: bash shell docker sftp sshpass