我是gitlab-ci
的新手。我在我的私人服务器上用docker executor设置了gitlab runner。当我将新提交合并到我的仓库时,会触发构建。我可以通过Gitlab
的网络用户界面确认
据我所知,这些作业是在跑步者服务器上运行的,所以我想我的私人跑步者服务器上创建了docker容器。但是当我做docker ps -a
时,我看不到那个容器,或者我甚至看不到用于创建容器的docker图像。
有没有办法检查容器/图像运行工作?或者我的理解是否有任何错误?
我可以在Web控制台上查看作业日志,但是我可以在CLI
上看到这些日志吗?
如果我在任何时候出错,请纠正我。
答案 0 :(得分:1)
当我做docker ps -a或者我甚至看不到用于创建容器的docker图像。
如果你已经激活了docker:dind服务(docker in docker),那么这似乎是预期的。
你会看到你的容器只有Docker socket binding ,其中由docker命令产生的任何容器都是Runner的兄弟,而不是跑步者的孩子。
通过共享docker守护程序,您实际上会禁用容器的所有安全机制,并使主机暴露于权限升级,这可能导致容器突破。
例如,如果项目运行docker rm -f $(docker ps -a -q)
,它将删除GitLab Runner容器。