Docker上的Gitlab持续集成

我有一个运行在Docker容器上的Gitlab服务器: gitlab docker

在Gitlab上有一个带有一个简单的Makefile的项目,运行pdflatex来构buildpfd文件。

在我安装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 

任何想法?

您的链接的最重要的评论是现货:

“Gitlab是好的,但这个容器绝对是疯狂的。”

其次,看看gitlab自己的build议 , 不应该在Windows上使用这个容器

如果你想从Gitlab服务器使用Gitlab-CI,你实际上应该在合适的支持的Linux虚拟机上使用Omnibus安装一个合适的Gitlab服务器实例,并且不应该试图使用这个容器来达到明显不适合的目的:真正的生产方式来运行Gitlab。

Gitlab-omnibus包含:

  1. 一个由postgres支持的持久(而不是无状态!)数据层。

  2. 现有的聊天服务器将成为您的团队聊天logging。

  3. 不是一个,而是一系列的服务器进程一起工作,为您提供gitlab服务器function和networkingpipe理/pipe理前端,在一个devise,似乎并不理想我在Docker生产运行。

  4. 一个集成的CI构buildpipe理器, 它本身就是一个Docker容器pipe理器 。 您的docker实例将包含其他docker实例的caching。

这个容器是由Gitlab自己构build的,并不意味着您应该将其用于除testing/玩具或Gitlab本身实际使用的任何目的以外的任何内容,这可能会让人们通过kubernetes 。

我想你在这里有点困惑。 从这个评论来看:

在我安装texlive和make的Docker容器上,我也安装了docker runner命令:

curl -sSL https://get.docker.com/ | SH

看来你已经在docker里面安装了docker,而且没有安装任何runner? 如果是这样,这将不起作用。 得到这个运行的步骤是:

  • 部署一个新的gitlab跑步者。 最快的方法是使用gitlab runner docker 镜像部署另一个 docker容器。 您不能在您部署gitlab的docker容器中运行runner。您需要确保您select了一个执行程序(我build议使用shell执行程序来启动),然后您需要注册runner。 关于如何在这里做更多的信息。 这里没有详细说明的是,如果你使用docker for gitlab和docker for gitlab-runner,你需要链接容器或者build立一个dockernetworking,这样他们可以相互通信
  • 一旦你用gitlab部署并注册了runner,你会看到它出现在http(s):// your-gitlab-server / admin / runners中 – 从这里你需要把它分配给一个项目。 你也可以把它作为“共享”跑步者,从所有项目执行作业。
  • 最后,像已经.gitlab-ci.yml那样添加.gitlab-ci.yml ,构build将按预期工作。