我有一个在Docker容器上运行的Gitlab服务器:gitlab docker
在Gitlab上有一个带有简单Makefile的项目,它运行pdflatex来构建pfd文件 .
在我安装了texlive和make的Docker容器上,我还安装了docker runner,命令:
curl -sSL https://get.docker.com/ | sh
.gitlab-ci.yml看起来如下:
.build:
script: &build_script
- make
build:
stage: test
tags:
- Documentation Build
script: *build
作业停止运行并显示一条消息:
This build is stuck, because the project doesn't have any runners online assigned to it
任何的想法?
3 回答
您链接的最高评论是现场:
“Gitlab很好,但这个容器绝对是疯子 . ”
其次看gitlab's own advice你应该 not be using this container on windows, ever .
如果你想从Gitlab服务器使用Gitlab-CI,你实际上应该在一个适当的支持Linux VM上使用Omnibus安装一个合适的Gitlab服务器实例,并且不应该尝试使用这个容器,因为它明显不适合:真正的 生产环境 方式来运行Gitlab .
Gitlab-omnibus包含:
由postgres支持的持久性(非无状态!)数据层 .
一个聊天服务器,其中现有的全部内容是成为团队聊天的持久日志 .
不是一个,而是一系列服务器进程,它们协同工作,为您提供gitlab服务器功能和Web管理/管理前端,这个设计似乎不适合我在docker中的 生产环境 中运行 .
一个集成的CI构建管理器 is itself a Docker container manager . 您的docker实例将包含其他docker实例的缓存 .
这个容器是由Gitlab本身构建的,并没有迹象表明你实际上应该将它用于测试/玩具以外的任何东西或者Gitlab自己实际使用它的东西,这可能是为了让人们在夜间构建Gitlab,可能是通过kubernetes .
我觉得你在这里有些困惑 . 从这个评论判断:
你似乎已经在Docker中安装了docker而没有实际安装任何跑步者?如果是这样的话,这将不起作用 . 实现此目标的步骤如下:
部署一个新的gitlab运行器 . 最快的方法是使用gitlab runner docker image部署另一个docker容器 . 您可以_t11423_已经部署了gitlab . 您需要确保选择执行程序(我建议使用shell执行程序让您入门),然后您需要注册跑步者 . 有关如何执行此操作的更多信息here . 使用docker for gitlab和docker for gitlab-runner,你需要link the containers或设置一个docker network以便它们可以相互通信
一旦_1111429_ll需要将其分配给项目 . 您也可以将其设为"Shared" runner,它将执行所有项目中的作业 .
最后,按现有方式添加
.gitlab-ci.yml
,构建将按预期工作 .也许你像我一样设置了错误的标签 . 确保标签名称与您可用的跑步者 .
tags - Documentation Build # tags is used to select specific Runners from the list of all Runners that are allowed to run this project.
见:https://docs.gitlab.com/ee/ci/yaml/#tags