Контейнер списка докеров - Gitlab Runner - PullRequest
0 голосов
/ 30 октября 2019

Я использую Gitlab Runner на своем VPS, а gitlabrunner работает в контейнере.

Я хотел бы знать, есть ли команда для вывода списка всех контейнеров первого уровня .

Когда мой бегун берется за работу и я ввожу docker ps Iсм. контейнер бегуна в списке. Но он должен быть запущен в моем первом док-контейнере.

Как докер может это дифференцировать?

imagedocker ps">

Вот мой docker-compose.yml для моего бегуна:

version: "3"
services:
  runner:
    image: gitlab/gitlab-runner:alpine
    restart: always
    volumes:
      - /home/adrien/runners/coretest/config:/etc/gitlab-runner
      - /var/run/docker.sock:/var/run/docker.sock

и мой config.toml:

concurrent = 1
check_interval = 0

[session_server]
  session_timeout = 1800

[[runners]]
  name = "My Docker Runner"
  url = "https://gitlab.com/"
  token = "<my-token>"
  executor = "docker"
  [runners.custom_build_dir]
  [runners.docker]
    tls_verify = false
    image = "docker:stable"
    privileged = false
    disable_entrypoint_overwrite = false
    oom_kill_disable = false
    disable_cache = false
    volumes = ["/var/run/docker.sock:/var/run/docker.sock", "/cache"]
    shm_size = 0
  [runners.cache]
    [runners.cache.s3]
    [runners.cache.gcs]

1 Ответ

2 голосов
/ 30 октября 2019

Вы используете docker runner, который монтирует носок docker в runner, который позволяет ему запускать новые контейнеры на демоне docker хоста. Задание CI не будет выполняться в контейнере coretest_runner_1;работа контейнера coretest_runner_1 состоит в том, чтобы принимать задания от Gitlab, а затем манипулировать демоном Docker хоста, чтобы раскручивать контейнеры для запуска этих заданий CI. Ваш контейнер runner является родственным для вашего контейнера coretest_runner_1, а неего потомок.

Если вы хотите, чтобы задание CI запускалось в контейнере coretest_runner_1, вам нужно изменить ваш runners.executor на «shell», чтобы он выполнялся в том же контексте, что иДемон gitlab-runner (который находится в контейнере) (см. документ executors ).

Имейте в виду, что это означает, что ваша работа не становится чистой, изолированной и может конфликтоватьдруг с другом.

...