首页 文章

Gitlab在Docker上的持续集成

提问于
浏览
1

我有一个在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 回答

  • 0

    您链接的最高评论是现场:

    “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 .

  • 1

    我觉得你在这里有些困惑 . 从这个评论判断:

    在我安装了texlive和make的Docker容器上,我还安装了docker runner,命令:curl -sSL https://get.docker.com/ | SH

    你似乎已经在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 ,构建将按预期工作 .

  • 1

    也许你像我一样设置了错误的标签 . 确保标签名称与您可用的跑步者 .

    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

相关问题