Как настроить 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

Заранее спасибо и всего наилучшего.

0 ответов

Другие вопросы по тегам