首页 文章

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

提问于
浏览
1

我正在谷歌 Cloud 引擎上部署gitlab-runner到kubernetes,因此可以快速扩展跑步者/将配置发送给其他人,这样他们就可以运行自己的跑步者 . 但首先,我想试着看看我是否可以让我的笔记本电脑本地连接到跑步者 .

设置我有一个项目,在gitlab上是公开的,但我没有证明自己可以通过:https://github.com/NullVoxPopuli/vsts-agent-with-aws-ecr(我为工作做的一个项目)

这是我到目前为止gitlab运行器的内容:

#/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然后运行测试 .

1 回答

  • 0

    我遇到了和以前一样的问题 . 似乎停泊器容器在完成注册跑步者后退出 . 由于某种原因,即使设置了 docker run -rm 标志,我在后续命令上也得到了"container already exists" . 也许教程有错误或我们误解了那里的一些步骤 .

    我解决它的方法是首先删除容器

    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
    

    我希望它有所帮助 .

相关问题