这是我的代码
- step:
name: SSH to Digital Ocean and update docker image
script:
- head ~/.ssh/config
- ssh -i ~/.ssh/config root@XXX.XXX.XXX.XXX
- docker ps
- docker rm -f gvcontainer
- docker image rm -f myrepo/myimage:tag
- docker pull myrepo/myimage:tag
- docker run --name gvcontainer -p 12345:80 -d=true --restart=always myrepo/myimage:tag
services:
- docker
在这里,我可以看到Pipeline ssh已成功放入我的DO液滴中,但是由于某些原因(我想键入“ docker ps”太快了。它应该等待几秒钟,但是我只是不这样做”不知道如何推迟操作)找不到容器。
所以我手动将其放入ssh并检查是否存在gvcontainer。
请以任何可能的原因启发我。 谢谢
答案 0 :(得分:1)
SSH会话后列出的命令不在远程系统上运行-它们正在管道中运行。由于管道容器没有要删除的gvcontainer
,因此会返回该错误。
您有几种选择,我在回答其他问题时概述了其中一种(如ssh -i /path/to/key user@host "command1 && command2"
中所述,将命令作为SSH的参数传递)。另一种选择是将脚本放在可以执行所有所需操作的小程序上,然后使管道通过SSH(ssh -i /path/to/key user@host "./do-all-the-things.sh"
)执行该脚本。