gpt4 book ai didi

docker - 如何使用 docker 为 gitlab 托管的项目运行 gitlab-runner?

转载 作者:行者123 更新时间:2023-12-01 16:50:36 25 4
gpt4 key购买 nike

我正在将 gitlab-runner 部署到 google-cloud-engine 上的 kubernetes,以便可以快速扩展运行器/将配置发送给其他人,以便他们可以运行自己的运行器。但首先,我想尝试看看是否可以将运行者本地连接到我的笔记本电脑上。

设置我在 gitlab 上有一个公开的项目,但我认为这并不重要,因为这里的目标只是能够在 gitlab 运行器上运行基于 docker 的测试。使用 docker,我已经向自己证明这是可能的:https://github.com/NullVoxPopuli/vsts-agent-with-aws-ecr (我为工作所做的一个项目)

这是我迄今为止为 gitlab runner 所做的:

#/bin/bash
docker stop gitlab-runner && docker rm gitlab-runner

docker run -d --name gitlab-runner --restart always \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /usr/local/gitlab-ci-runner/config:/etc/gitlab-runner \
-v "$(pwd)/config.toml":/etc/gitlab-runner/config.toml:ro \
gitlab/gitlab-runner:alpine

docker exec -it gitlab-runner gitlab-runner register \
-n \
--url https://gitlab.com/ci \
--tag-list "docker,docker-compose" \
--run-untagged \
--registration-token my-runner-token \
--executor docker \
--description "Docker Runner" \
--docker-image "docker:dind" \
--docker-volumes /var/run/docker.sock:/var/run/docker.sock \
--docker-privileged

这是我的 config.toml:

concurrent = 4

[[runners]]
name = "precognition-gitlab-runner"
url = "https://gitlab.example.com/ci"
token = "my-runner-token"
executor = "docker"
run_untagged = true

[runners.docker]
tls_verify = false
image = "alpine"
privileged = true
disable_cache = false
volumes = ["/cache", "/var/run/docker.sock:/var/run/docker.sock"]
[runners.cache]
Insecure = false

现在,当我运行运行 gitlab-runner 的脚本然后注册它时,我确实在 gitlab 的 https://gitlab.com/project_name/settings/ci_cd 中看到它。

但是,它表示运行者尚未连接: enter image description here

正确的配置方法是什么?

这是我的 .gitlab-ci.yml 供任何好奇的人使用:https://gitlab.com/precognition-llc/aeonvera-ui/blob/registration-rework/.gitlab-ci.yml

它只是运行其他脚本,这些脚本又运行 docker-compose,然后运行测试。

最佳答案

我之前也遇到过和你一样的问题。看起来 docker 容器在他完成注册运行器后就退出了。由于某种原因,即使设置了 docker run -rm 标志,我在后续命令中仍收到“容器已存在”。也许教程有错误或者我们误解了其中的一些步骤。

我解决这个问题的方法是先删除容器

docker stop gitlab-runner
docker rm gitlab-runner

然后启动已经注册的容器:

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

希望对您有所帮助。

关于docker - 如何使用 docker 为 gitlab 托管的项目运行 gitlab-runner?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44184034/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com