用 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
用你的编辑器编辑它
$
保存文件
重启docker实例
$ docker-compose 重启 gitlab-runner
【讨论】:
请描述一下,CI/CD 有问题吗?或描述布局。我会帮忙的。以上是关于用 Docker compose 实现 gitlab 和 gitlab runner的主要内容,如果未能解决你的问题,请参考以下文章