Как Gitlab регистрирует бегуна в контейнере Docker? - PullRequest
1 голос
/ 27 января 2020

Я пытаюсь зарегистрировать бегуна Gitlab, используя Docker (работает на Centos 7.6), используя следующую документацию:

https://docs.gitlab.com/runner/install/docker.html#docker -изображения https://docs.gitlab.com/runner/register/index.html#docker

Эта документация в основном инструктирует меня: (1) запустить бегуна и затем (2) зарегистрировать его:

  1. Я запускаю бегуна:

docker run -d --name my-gitlab-runner --restart always \ -v /srv/gitlab-runner/config:/etc/gitlab-runner \ -v /var/run/docker.sock:/var/run/docker.sock \ gitlab/gitlab-runner:latest

Я регистрирую участника (который завершается без проблем):

docker run --rm -t -i -v /srv/gitlab-runner/config:/etc/gitlab-runner gitlab/gitlab-runner register

В регистрационной документации, упомянутой во втором URL-адресе, упоминается "В этом разделе вы запустите эфемерный контейнер gitlab-runner для регистрации контейнера , который вы создали во время установки. "

Моя проблема в том, что я не вижу, где / как этот процесс регистрации связывает созданный мной контейнер на шаге 1 с бегуна Gitlab. Регистрация связывает бегуна с изображением, но не фактическим экземпляром контейнера. Регистрация не выполняется из контейнера, созданного на шаге 1. Как Gitlab узнает, что только что зарегистрированный бегун соответствует контейнеру, который я создал на шаге 1, а не какому-то другому контейнеру.

Я должен упустить что-то очевидное, поэтому любая помощь очень ценится.

Спасибо.

Ответы [ 2 ]

2 голосов
/ 27 января 2020

Оба контейнера (временный и фактический экземпляр gitlab-runner) совместно используют том -v /srv/gitlab-runner/config:/etc/gitlab-runner, в котором хранится маркер регистрации. Фактический экземпляр бегуна может затем использовать этот токен из сгенерированного конфига для аутентификации с экземпляром gitlab.

0 голосов
/ 27 января 2020

Вместо запуска контейнера на хост-машине (той, у которой установлен docker), вы регистрируете своего бегуна обычным способом:

sudo gitlab-runner register

Но в качестве исполнителя вы указываете - docker

...