бегун gitlab - network_mode = "хост" - PullRequest
0 голосов
/ 12 апреля 2019

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

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

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

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

Ошибка:

ПРЕДУПРЕЖДЕНИЕ: подготовка не удалась: ответ от демона: oci ошибка времени выполнения: container_linux.go: 265: вызван запуск процесса контейнера "process_linux.go: 368: вызван запуск контейнера \" process_linux.go: 351: вызван запуск ловушки предварительного запуска 0 \\ "Ошибка запуска ловушки: выход из состояния 1, stdout:, stderr: time = \\\\" 2019-04-12T18: 42: 33 + 02: 00 \\\\ "level = fatal msg = \\\\ "не удалось добавить интерфейс vethfc7c8d1 в песочницу: не удалось получить ссылку по имени \\\\\\\\" vethfc7c8d1 \\\\\\\\ ": ссылка не найдена \\\\" \\ n \\ "\ "" (executor_docker.go: 423: 16s) 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 создавать контейнеры для использования сети хоста, как в параметре docker: "--network host"

1 Ответ

0 голосов
/ 02 мая 2019

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

Я настроил Реестр контейнеров GitLab репозитория для загрузки и белый списокпользовательский образ докера, а затем включил Shared Runners моей компании.Настраиваемое изображение, которое я загрузил, было создано с помощью Dockerfile с использованием Docker для Windows , избегая борьбы с ошибочным докером в Linux-подсистеме Windows.Теперь я могу безупречно выполнять свой конвейер CI и иметь полный контроль над используемым образом, и мне не нужно поддерживать работу локальной машины.

...