Docker GitLab CI/CD SSH会话挂起在管道中

Docker GitLab CI/CD SSH会话挂起在管道中,docker,gitlab,gitlab-ci,Docker,Gitlab,Gitlab Ci,我正在使用GitLab CI/CD构建docker映像并将其推送到我的私有GitLab注册表 我能够从管道运行程序成功地通过SSH连接到服务器,但是传递到SSH会话的任何命令都不会运行 我试图从我的GitLab容器注册表中提取最新的映像,运行它,然后退出会话,以便优雅地(成功地)将数据传递到我的管道 我正在运行的命令是: ssh -t user@123.456.789 "docker pull registry.gitlab.com/user/project:latest & docke

我正在使用GitLab CI/CD构建docker映像并将其推送到我的私有GitLab注册表

我能够从管道运行程序成功地通过SSH连接到服务器,但是传递到SSH会话的任何命令都不会运行

我试图从我的GitLab容器注册表中提取最新的映像,运行它,然后退出会话,以便优雅地(成功地)将数据传递到我的管道

我正在运行的命令是:

ssh -t user@123.456.789 "docker pull registry.gitlab.com/user/project:latest & docker run project:latest"
上面的命令将我连接到服务器,我看到了典型的欢迎消息,但是会话挂起并且没有运行任何命令

我曾尝试使用
herdoc
格式一次传递多个命令,但一个命令都不能工作


任何建议都将不胜感激

对于测试,您可以尝试

ssh user@123.456.789 ls
要链接命令,请避免使用“
&
”命令,因为它会导致

尝试:

如果可以,请尝试两个
docker
命令,用“
分隔'


尝试使用(that)来分离docker进程,而不需要tty。

尝试
ssh-t时user@123.456.789“ls;pwd
ssh连接仍然位于motd屏幕上,并且没有输出。@confusedandamused您关闭了吗”?我在你的评论中看到的是“ls;pwd”,而不是“ls;pwd“@ssh在没有-t的情况下尝试ssh:这将分配一个TTY。这非常好!有没有一种简单的方法可以优雅地结束ssh会话-让映像运行?(这样CI/CD作业就通过了?)在有或没有-t的两种情况下,如果出现随机挂起的问题,它不会将控件返回到下一个命令…&将对进程进行后台处理,&如果进程1以成功的返回代码退出,则将链接进程。
ssh user@123.456.789 "ls; pwd"