用 Docker compose 实现 gitlab 和 gitlab runner

Posted

技术标签:

【中文标题】用 Docker compose 实现 gitlab 和 gitlab runner【英文标题】:implement gitlab and gitlab runner with Docker compose 【发布时间】:2022-01-11 20:51:12 【问题描述】:

我想用 gitlab 实现 CICD,我想用 docker-compose 来做这个,我写了这个 docker-compose.yml 但这不起作用,我无法连接到 gitlab web。我从撰写日志中接收此日志的另一种方式:

**gitlab-runner    | **ERROR: Failed to load config stat /etc/gitlab-runner/config.toml: no such file or directory  builds=0****

这是我的撰写文件:

version: '3.5'
services:
  gitlab:
    container_name: gitlab
    image: gitlab/gitlab-ce:latest
    restart: always
    environment:
      GITLAB_OMNIBUS_CONFIG: |
        external_url 'http://192.168.1.96'
        gitlab_rails['gitlab_shell_ssh_port'] = 522
        letsencrypt['enable'] = false
    ports:
      - "443:443"
      - "80:80"
      - "522:22"
    volumes:
      - ./config/gitlab:/etc/gitlab
      - ./data/gitlab:/var/opt/gitlab
      - ./logs:/var/log/gitlab
    networks:
      - gitlab

  gitlab-runner:
    image: gitlab/gitlab-runner
    container_name: gitlab-runner
    restart: always
    depends_on:
      - gitlab
    volumes:
      - ./config/gitlab-runner:/etc/gitlab-runner
      - /var/run/docker.sock:/var/run/docker.sock
    networks:
      - gitlab

networks:
  gitlab:

我如何创建config.toml 文件并在运行后编写如何配置我的 gitlab。 通常帮助我以这种方式实施 CICD。

【问题讨论】:

./config/gitlab-runner/config.toml 中分享您的文件内容。很可能,该文件不存在。是吗? 几个月前我做了同样的事情(gitlab runner with dind)。只需分享更多详细信息,您就会得到解决方案 我的猜测是你还没有注册你的跑步者(如果你的 gitlab-ui 没有启动和运行,你还没有注册)。假设是这种情况,您应该评论您正在运行您的 gitlab-runner,直到您的 gitlab-ui 启动并运行,此时您可以注册您的跑步者。 你注册了跑步者吗? docs.gitlab.com/runner/register/#docker 你用什么地址访问gitlab?请注意,您应该使用在external_url 指令中提供的确切地址。不需要加载 gitlab 和 gitlab-runner,因此 gitlab-runner 服务中的错误与 gitlab 无关。请注释掉 gitlab-runner 部分并再次运行 docker-compose 并复制问题中的日志。 【参考方案1】:

docker-compose.yml 文件夹执行后续步骤:

    创建

    $ touch ./config/gitlab-runner/config.toml

    用你的编辑器编辑它

    $ ./config/gitlab-runner/config.toml

    保存文件

    重启docker实例

    $ docker-compose 重启 gitlab-runner

【讨论】:

请描述一下,CI/CD 有问题吗?或描述布局。我会帮忙的。

以上是关于用 Docker compose 实现 gitlab 和 gitlab runner的主要内容,如果未能解决你的问题,请参考以下文章

二 用docker compose搭建kafka集群

Dapr牵手.NET学习笔记:用docker-compose部署服务

使用Compose变量定制Docker网络

使用Compose变量定制Docker网络

Docker用docker compose部署服务

Docker Compose 部署Nginx服务实现负载均衡