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

时间:2019-09-21 06:31:39

标签: 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 & docker run project:latest"

上面的命令将我连接到服务器,我看到了典型的欢迎消息,但是会话挂起并且没有运行命令。

我尝试使用heredoc格式一次传递多个命令,但是我无法获得单个命令。

任何建议都值得赞赏。

1 个答案:

答案 0 :(得分:1)

要进行测试,您可以尝试

ssh user@123.456.789 ls

要链接命令,请避免使用would make the first command run in the background, while acting as command separator的'&'。

尝试:

ssh user@123.456.789 "ls; pwd"

如果可以,请尝试使用两个docker命令,并用';'

分隔。

尝试使用docker run -td(即I mentioned here)来分离docker进程,而不需要使用tty。