Как стать автором
Обновить

Комментарии 3

version: '3.5'
name: gitlab-runner
services:
  runner:
    restart: always
    image: registry.gitlab.com/gitlab-org/gitlab-runner:alpine
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - ~/.gitlab-runner:/etc/gitlab-runner:z
    network_mode: host

Ларчик просто открывался. Это всё, что нужно для запуска gitlab-runner без танцев с бубном.

(И ещё до кучи, не проверял - ChatGPT насоветовал.)

Это позволяет запускать задания GitLab CI/CD в отдельных, изолированных контейнерах Docker. Вот пример конфигурации docker-compose.yml для GitLab Runner:

version: '3.5'
services:
  dind:
    image: docker:20-dind
    restart: always
    privileged: true
    environment:
      DOCKER_TLS_CERTDIR: ''
    command:
      - --storage-driver=overlay2
  runner:
    restart: always
    image: registry.gitlab.com/gitlab-org/gitlab-runner:alpine
    depends_on:
      - dind
    environment:
      - DOCKER_HOST=tcp://dind:2375
    volumes:
      - ./config:/etc/gitlab-runner:z
  register-runner:
    restart: 'no'
    image: registry.gitlab.com/gitlab-org/gitlab-runner:alpine
    depends_on:
      - dind
    environment:
      - CI_SERVER_URL=${CI_SERVER_URL}
      - REGISTRATION_TOKEN=${REGISTRATION_TOKEN}
    command:
      - register
      - --non-interactive
      - --locked=false
      - --name=${RUNNER_NAME}
      - --executor=docker
      - --docker-image=docker:20-dind
      - --docker-volumes=/var/run/docker.sock:/var/run/docker.sock
    volumes:
      - ./config:/etc/gitlab-runner:z

Вам также потребуется файл .env со следующим содержимым:

RUNNER_NAME=RUNNER-NAME
REGISTRATION_TOKEN=TOKEN
CI_SERVER_URL=https://gitlab.com/

Пожалуйста, замените RUNNER_NAME, REGISTRATION_TOKEN, и CI_SERVER_URL на соответствующие значения для вашего проекта.

Как отказаться от helper_image?

### config.toml - diff helper_image VS docker image ###
# concurrent = 1
concurrent = 2
check_interval = 0
shutdown_timeout = 0

[session_server]
  session_timeout = 1800

[[runners]]
  name = "via docker"
  url = "http://localhost"
  id = 13
  token = "glrt-2GR51rubUbopK_fqMFLz"
  token_obtained_at = 2023-12-12T14:51:21Z
  token_expires_at = 0001-01-01T00:00:00Z
  executor = "docker"
  # only for docker image:
  environment = ["DOCKER_DRIVER=overlay2", "DOCKER_LOGIN=gitlab-ci", "DOCKER_PASSWORD=password"]
  [runners.cache]     
    MaxUploadedArchiveSize = 0
  [runners.docker]
    tls_verify = false
    # image = ""
    image = "docker:latest"
    # privileged = true
    privileged = false
    disable_entrypoint_overwrite = false
    oom_kill_disable = false
    disable_cache = false
    # volumes = ["/certs/client", "/cache"]
    volumes = ["/var/run/docker.sock:/var/run/docker.sock", "/cache"]
    shm_size = 0
    network_mode = "host"
    # helper_image = "registry.gitlab.com/gitlab-org/gitlab-runner/gitlab-runner-helper:x86_64-e0218c92"
    # network_mtu = 0
    # only for docker image:
    pull_policy = ["always", "if-not-present"]

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории