2016-11-27 39 views
1

持续集成我有一个Gitlab服务器上的码头工人容器中运行:gitlab dockerGitlab上泊坞

在Gitlab存在与运行pdflatex建立PFD文件的简单的Makefile的项目。

在泊坞容器我装的texlive而作,我也装泊坞窗亚军,命令:

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 

有什么想法吗?

+0

建议在Docker外部运行您的GITLAB RUNNER,并让Docker下载并启动Docker容器。这听起来像你试图自己建立亚军?您是否按照文档中的说明进行操作? https://docs.gitlab.com/runner/#using-gitlab-runner –

+0

GITLAB CI RUNNER!= GITLAB SERVER。你的意思是说你在Docker中运行主Gitlab服务器,还是CI运行器在Docker中运行?或者你没有意识到服务器不包含任何跑步者,你需要设置一个跑步者? –

+0

显然不是!我在包含Gitlab的Docker容器外部运行curl命令,所以我在主机上执行了它。我现在正在阅读设置系统是非常复杂的,因为我想要的,Jenkings会更容易... – mattobob

回答

1

你的链接上的热门评论是对现货:

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

其次看gitlab's own advice你应该不能在窗户上使用这个容器,永远

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

Gitlab-综合包括:

  1. 持久(不是无状态的!)数据层搭载的Postgres。

  2. 一个已存在的聊天服务器将成为您的团队聊天的持续记录。

  3. 不是一个,而是一系列服务器进程,它们共同为您提供gitlab服务器功能和Web管理/管理前端,这在设计上似乎并不理想,因为我在docker的生产环境中运行该设计。

  4. 一个集成的CI构建管理器,本身就是一个Docker容器管理器。您的码头实例将包含其他码头实例的缓存。

那这个容器是将Gitlab本身内置任何迹象表明你真正应该使用它不是作为一个测试/玩具或什么Gitlab自己真正使用它,这可能是其他什么让人旋转起来Gitlab每晚都可以通过kubernetes进行构建。

+0

好男人很酷谢谢,但我不在窗户上,旁边那个对我来说工作很好,我喜欢使用码头工人容器他们的多功能性是美好的我可以在同一台机器上运行多个不同目的的服务器 – mattobob

+0

Git服务器的目的是包含你的代码,而不是丢失它。 Docker的重点是轻松建立和拆卸东西。持久性不是Docker的强项。为什么不将硬盘备份到Docker容器?看到我的观点? –

1

我想你在这里有点困惑。通过此评论来看:

在我的texlive安装,使泊坞容器,我也装 泊坞窗亚军,命令:

卷曲-ssl https://get.docker.com/ | sh

看来你已经在Docker中安装了docker,并没有实际安装任何跑步者?如果是这样的话,这将不起作用。得到这个运行的步骤如下:

  • 部署一个新的gitlab运行器。最快的方法是使用gitlab运行器docker image部署另一个码头集装箱。你不能在你部署gitlab的docker容器中运行runner。你需要确保你选择了一个执行器(我建议你使用shell执行器来启动),然后你需要注册runner。有关于如何执行此操作的更多信息here。这里没有详细说明的是,如果您使用docker for gitlab和docker for gitlab-runner,则需要link the containers或设置一个docker network,以便它们可以相互通信
  • 一旦部署并用gitlab注册跑步者,你会发现它出现在http(s):// your-gitlab-server/admin/runners中 - 从这里你需要将它分配给一个项目。您也可以将其作为“共享”跑步者,它将执行所有项目的作业。
  • 最后,添加已有的.gitlab-ci.yml,并且构建将按预期工作。
+0

这可能是一个很好的答案。这可能是解决这个问题的方法。但是我认为,除了作为测试系统之外,不要以这种方式运行Gitlab会更好。 –

+0

同意。虽然我不喜欢在Docker中运行任何重要的东西,但是我保持了它的政治性:) – jaxxstorm