GitLab-CI多跑者开始泊坞容器

时间:2015-07-30 10:50:16

标签: docker gitlab gitlab-ci gitlab-ci-runner

我仍然不太了解gitlab-ci多跑者开始使用码头并与代码进行内部交互的过程。

gitlab-ci多跑者是否可以在此docker容器中启动具有当前代码的docker容器,然后针对此代码运行测试? (例如:代码掉落)

我基本上想要一个安装了各种挂钩的docker容器。 GitLab-CI多跑者应该在主机系统上运行并按需启动docker容器。在docker容器中,应该根据phpcs检查代码。

如何将repo代码放入docker容器?

感谢您的帮助

3 个答案:

答案 0 :(得分:1)

首先,gitlab-runner需要按照documentation中的描述安装Docker套接字:

docker run -d --name gitlab-runner --restart always \
 -v /var/run/docker.sock:/var/run/docker.sock \
 -v /srv/gitlab-runner/config:/etc/gitlab-runner \
 gitlab/gitlab-runner:latest

之后,你必须注册跑步者:

  1. docker 作为执行人。
  2. 带有您想要的短片的Docker镜像作为Docker镜像。

答案 1 :(得分:0)

每个docker client会将命令转发给docker daemon,docker守护程序将侦听本地端口,例如http,tcp或unix socket。

当您启动这样的容器时:

  

docker run -d --name gitlab-runner --restart always \    -v /var/run/docker.sock:/var/run/docker.sock \    -v / srv / gitlab-runner / config:/ etc / gitlab-runner \    gitlab / gitlab浇道:最新

所有docker命令都将转发给主机,因为docker正在监听unix:///var/run/docker.sock

PS:您需要在gitlab-runner容器中安装docker

答案 2 :(得分:0)

我知道这个问题已经过时了,但我想我还是回答了,因为我此刻一直在研究类似的事情,我想我想更大规模地回答它,给出一个基本的想法,一个起点,用GitLab-CI了解构建过程。

如[{3}}所述,在系统上安装gitlab-runner有多种方法。总是会安装跑步者,然后在你的gitlab实例上注册跑步者。

将引导您完成注册过程here。 在注册过程中,您必须选择将在其上实现构建的执行程序。 这些可以是ssh,docker + machine,docker-ssh + machine,kubernetes,docker,parallels,virtualbox,docker-ssh和shell:docker。

假设您选择docker作为执行者。将构建传递给您的运行程序后,它将启动构建容器,构建将在该构建容器中运行 执行。在某些项目设置中,没有图像被定义为基础环境'。因此,在(码头执行者)跑步者注册期间,您将被要求 定义可用作构建容器的默认映像,即构建环境。

因此,如果您的项目没有定义基础环境'你必须选择一个满足你的构建需求。例如。如果你运行在ant脚本中定义的构建,你将需要一个安装了ant的图像,或者你需要在.gitlab-ci.yml中设置ant。

在.gitlab-ci.yml中,您将描述您的构建管道(here)。在那里,您还可以更精确地定义如何将repo克隆到构建容器中。但是使用默认配置,每次贡献者将代码库的更改推送到git(lab)存储库时,都会发生克隆。

GitLab要求您使用内置的git存储库。这使得GitLab无需进一步配置即可克隆存储库(除了管理配置,您还必须通过设置GitLab并对其进行维护)。

您可以使用其他容器(称为' services')支持构建容器,例如用于在构建过程中运行的测试的数据库容器。

有关详细信息,请参阅see more about that herehttps://docs.gitlab.com/runner/

相关问题