бегун gitlab - network_mode = host

Я хочу настроить CI / CD в GitLab. Итак, я установил докер и gitlab-runner на linux, создал конфигурацию для бегуна и все запустил. Все идет нормально.

Бегунок работает, а докер работает.

Но я использую подсистему linux из Windows, поэтому мне нужно запустить контейнер докеров с параметром «--network host», иначе они не будут работать.

Итак, прямо сейчас я пытаюсь настроить gitlab-runner для использования хост-сети с помощью параметра «network_mode». Но это не работает. Я получаю ту же ошибку, как если бы я запускал контейнер докеров напрямую и без «--network host».

Ошибка:

ПРЕДУПРЕЖДЕНИЕ: Подготовка не удалась: ответ об ошибке от демона: ошибка времени выполнения oci: container_linux.go: 265: запуск процесса контейнера вызвал "process_linux.go: 368: инициализация контейнера вызвала \" process_linux.go: 351: запуск prestart hook 0 вызвал \\ " ошибка выполнения обработчика: статус выхода 1, stdout:, stderr: time = \\\\ "2019-04-12T18: 42: 33 + 02: 00 \\\\" level = fatal msg = \\\\ "не удалось добавить интерфейс vethfc7c8d1 в песочницу: не удалось получить ссылку по имени \\\\\\\\ "vethfc7c8d1 \\\\\\\\": Ссылка не найдена \\\\ "\\ n \\" \ "" ( executeor_docker.go: 423: 16 с) job = 123project = 123 runner = 123

Это мой конфиг:

concurrent = 1
check_interval = 0

[session_server]
session_timeout = 1800

[[runners]]
    name = "MyHostName"
    url = "https://my.gitlab.url/"
    token = "SoMeFaNcYcOdE-e"
    executor = "docker"
    [runners.docker]
        tls_verify = false
        image = "beevelop/ionic:latest"
        privileged = true
        disable_entrypoint_overwrite = false
        oom_kill_disable = false
        disable_cache = false
        volumes = ["/cache"]
        shm_size = 0
        network_mode = "host"
        [runners.cache]
        [runners.cache.s3]
        [runners.cache.gcs]

У меня вопрос: как заставить gitlab runner создавать контейнеры для использования сети хоста, как с параметром docker: "--network host"


person Felix Quehl    schedule 12.04.2019    source источник


Ответы (1)


Мне не удалось решить проблему напрямую, но я нашел альтернативный способ, который намного лучше.

Я настроил GitLab Container Registry репозитория для загрузки и внесения в белый список пользовательских образ докера, а затем включил общие бегуны моей компании. Пользовательский образ, который я загрузил, был создан через Dockerfile с использованием docker for windows, избегая борьбы багги-docker в подсистеме linux окон. Теперь я могу безупречно выполнять свой конвейер CI и иметь полный контроль над используемым образом, и мне не нужно поддерживать работу моего локального компьютера.

person Felix Quehl    schedule 02.05.2019