2017-02-02 15 views
2

Я новичок до gitlab-ci. Я установил gitlab runner на моем личном сервере с исполнителем докеров. Когда я соединяю новую фиксацию с моим репо, сборка запускается. Я могу подтвердить, что из веб-интерфейса Gitlab.
Как я понял, задания выполняются на сервере бегуна, поэтому я предполагаю, что контейнер докеров создан на моем личном сервере бегуна. Но я не вижу этот контейнер, когда я делаю docker ps -a, или я не вижу даже изображение докеров, которое используется для создания контейнера.
Есть ли способ проверить работу контейнера/изображения? Или есть какая-то ошибка в моем понимании?Оператор докеры gitlab-ci | Как я могу увидеть контейнер докеров, где происходит сборка?

И я могу видеть журналы работы на веб-консоли, но могу ли я увидеть эти журналы на CLI?

Пожалуйста, исправьте меня, если я ошибаюсь в любой момент.

+0

Убедитесь, что вы используете 'docker ps' с правами доступа для просмотра запущенных контейнеров. Я использую оригинальное изображение докеры gitlab-runner с совместным использованием сокетов, и я вижу, что контейнер запускается в любое время после запуска (и регистрации его в GitLab). Пока бегун выполняет задания, я могу видеть больше записей в 'docker ps'. Они видны как остановленные в 'docker ps -a' впоследствии. –

ответ

1

Когда я делаю докер ps -a или я не вижу даже изображение докеров, которое используется для создания контейнера.

Это кажется ожидаемым, если вы активировали докер: сервис dind (докер в докере).

Вы увидите свои контейнеры только с Docker socket binding, где любые контейнеры, порожденные командами докеров, будут братьями и сестрами Бегуна, а не детьми бегуна.

Совместное использование демона докеров позволяет эффективно отключить все механизмы безопасности контейнеров и подвергнуть ваш хост эскалации привилегий, что может привести к прорыву контейнера.
Например, если проект запущен docker rm -f $(docker ps -a -q), он удалит контейнеры Runner GitLab.

+0

Я не понимаю, почему мне нужно активировать докер: услуга по обслуживанию. Я полагаю, что контейнер докеров запущен на хосте gitlab runner, не так ли? Если это так, то контейнер должен быть видимым после того, как сборка будет запущена, просто сделав «docker ps -a» мертвым или запущенным. – Rohanil

+0

@Rohanil SO Вы используете исполнитель оболочки? (https://docs.gitlab.com/ce/ci/docker/using_docker_build.html#use-shell-executor) – VonC

+0

Я использую [исполнитель докеров] (https://docs.gitlab.com/runner/executors/ docker.html) – Rohanil