Как настроить Gitlab-Runner с включенным docker-dind TLS
Я использую автономный Gitlab-Runner для своего CI, хотя у меня нет собственного экземпляра сервера Gitlab, только runner, поэтому я использую gitlab.com напрямую. Я использовал этот бегун до недавнего времени на машине Linux, и он работал нормально.
Однако из-за нескольких не относящихся к делу проблем я переместил его в Windows, и у меня начали появляться ошибки. Я получаю те же ошибки, если запускаю Gitlab-Runner в Docker вместо Windows / Linux.
Получаю известную ошибку:
«x509: сертификат, подписанный неизвестным органом»
Что связано с:
https://docs.gitlab.com/runner/configuration/tls-self-signed.html
https://about.gitlab.com/blog/2019/07/31/docker-in-docker-with-docker-19-dot-03/
Я попытался отключить TLS (DOCKER_TLS_CERTDIR="" в моем .gitlab-ci.yml), но он не работает, так как я получаю сообщение об ошибке "нет активного сеанса для o2sqatkibxtn725ie4jpr4d7u: крайний срок контекста превышен", когда я пытаюсь создать образ с docker build blabla при запуске CI.
У кого-нибудь есть рабочий пример с gitlab.com? Все примеры, которые я видел, связаны с собственными экземплярами Gitlab, поэтому они объясняют вам, что они создали сертификат и поместили его в папку и т. Д. Однако, если я использую Gitlab.com, как я могу создать сертификат? Если я не являюсь его владельцем (моих знаний здесь очень мало). Насколько я понял, такие сертификаты должен создавать Gitlab-Runner, но я их нигде не вижу. Я попытался добавить тома в Gitlab-Runner (volume = ["/certs / client", "/cache"]), а затем добавить DOCKER_TLS_CERTDIR = "/ certs", как указано в приведенных выше ссылках, но это не работает.
Если я запускаю свой CI с помощью общих бегунов, то он работает нормально. Часть моего CI выглядит так:
stages:
- test
- build
- deploy
variables:
DOCKER_TLS_CERTDIR = "blabla"
test_server:
tags:
- mytag
stage: test
image: docker/compose:1.27.4
services:
- docker:19.03.8-dind
before_script:
- echo "$CI_JOB_TOKEN" | docker login -u $CI_REGISTRY_USER --password-stdin $GITLAB_REGISTRY
script:
- docker build blabla
Заранее спасибо и всего наилучшего.