August 19
S2E09
- Отдельный сервер lf-runner под раннеры сделал в прошлых лабах.
- Поудалял старые раннеры из гитлаба и с серверов прода и стейджа. Оставил пока докер и шелл раннер на выделенном. Сделал композ файл и под пользователем gitlab-runner его запустил. Зарегистрировал shell и docker раннеры в докере.
- В volumes в dind в config.toml добавил в
volumesпуть к сокету докераvolumes = ["/cache","/var/run/docker.sock:/var/run/docker.sock"], лампочка у dind загорелась - В логах контейнера увидел варнинги и поправил конфиги. Текст предупреждений вполне понятно объяснил, что и как.
request_concurrency = 4поставил для каждого раннера.concurrent = 3на весь конфиг.
Проверяю: упала джоба деплоя (shell docker runner), т.к. в контейнере не установлен докер.
docker exec -it gitlab-runner sh apk updateapk add docker docker-compose docker commit gitlab-runner gitlab-runner-updated
Это мне дало новый, раздутый контейнер с докером.
Следующие запуски дали "host verification failed" на вытягивании контейнера из регистри. Поступил аналогично пайпу выноса для инфры - добавил в переменную ssh ключ, для которого есть доступ к гитлабу. И перед деплоем этот ключ размещаю в раннере.
После внимательного прочтения логов при следующих "host verification failed" добавил сканирование хостов и добавление их в known_hosts.
Теперь падает третья джоба. Нету архиватора потому что в контейнере. Ну такое мы чинить умеем.
Образ получился 530 Мб. Попробовал сделать свой раннер с помощью:
[lgc@localhost dind]$ cat Dockerfile FROM gitlab/gitlab-runner:alpine RUN apk add --no-cache docker docker-compose