Содержание

Как запустить GitLab Runner на Synology NAS

GitLab Runner можно запускать не только в облаке, но и на локальных устройствах. Один из самых удобных вариантов — использовать NAS для выполнения CI/CD-пайплайнов.

Такой подход имеет несколько преимуществ: NAS работает круглосуточно, поэтому Runner всегда доступен; вы не расходуете минуты бесплатного плана GitLab; а выполнение задач происходит прямо в вашей локальной сети, что повышает скорость и контроль.

Будем настраивать на Synology DS423+.

Сначала нужно зарегистрировать GitLab Runner на gitlab.com в проекте, который будет обслуживать Runner.
Для этого нужно зайти в настройки проекта в раздел CI/CD Settings -> Runners и нажать “Create project runner”

Можно указать теги и использовать эти теги во всех стадиях, указанных в gitlab-ci.yaml.
Самый простой вариант - не указывать теги и выбрать “Run untagged jobs”. Но тогда задачи могут запускаться на Shared Runner, а не на текущем.

новый gitlab-runner

На следующем шаге будет показан токен, который нужно сохранить.

Конфиг создается командой gitlab-runner register, используя токен:

❯ gitlab-runner register --url https://gitlab.com --token "***MASKED***"
Runtime platform                                    arch=arm64 os=darwin pid=94182 revision=bda84871 version=18.5.0
WARNING: Running in user-mode.
WARNING: Use sudo for system-mode:
WARNING: $ sudo gitlab-runner...

Enter the GitLab instance URL (for example, https://gitlab.com/):
[https://gitlab.com]:
Verifying runner... is valid                        correlation_id=99b5ad9956d78ba3-IAD runner=snDK0LGQO
Enter a name for the runner. This is stored only in the local config.toml file:
[m14p.local]: synology.local
Enter an executor: docker-windows, kubernetes, docker-autoscaler, shell, docker+machine, instance, custom, ssh, parallels, virtualbox, docker:
docker
Enter the default Docker image (for example, ruby:3.3):
docker:28.5.1
Runner registered successfully. Feel free to start it, but if it's running already the config should be automatically reloaded!

Configuration (with the authentication token) was saved in "~/.gitlab-runner/config.toml"

Команду gitlab-runner register можно выполнять на любой машине.

В результате будет создан конфиг ~/.gitlab-runner/config.toml с примерным содержанием:

concurrent = 1
check_interval = 0
shutdown_timeout = 0

[session_server]
session_timeout = 1800

[[runners]]
name = "synology.local"
url = "https://gitlab.com"
id = 50470218
token = "***MASKED***"
token_obtained_at = 2025-11-08T14:14:41Z
executor = "docker"

[runners.cache]
MaxUploadedArchiveSize = 0

[runners.docker]
tls_verify = false
image = "docker:28.5.1"
privileged = true
disable_entrypoint_overwrite = false
oom_kill_disable = false
disable_cache = false
volumes = ["/var/run/docker.sock:/var/run/docker.sock", "/cache"]
shm_size = 0
network_mtu = 0

privileged=true и volumes = ["/var/run/docker.sock:/var/run/docker.sock"] нужен, если Runner должен запускать другие контейнеры (например, для интеграционных тестов)

Теперь нужно зайти в NAS и создать проект на основе docker-compose конфигурации:

version: "3.8"

services:
  gitlab-runner:
    image: gitlab/gitlab-runner:latest
    container_name: gitlab-runner
    restart: always

    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - /Volume1/docker/gitlab-runner/storage/gitlab-runner:/etc/gitlab-runner

Тут важно указать существующую директорию с конфигом, которая будет примонтированна в /etc/gitlab-runner.

Создание проекта

Запускаем проект.
На GitLab должен поменяться статус ранера на online.

Runner в статусе online

Теперь можно запустить любой пайплайн для проверки.
В журнале Runner’а видно, выполняются ли задачи и возникают ли ошибки.

Журнал ранера

В GitLab так же отображаются задачи, которые выполняются или были выполнены на текущем ранере.

Задачи ранера

Теперь Synology NAS работает как полноценный GitLab Runner.
Все пайплайны выполняются локально, без лимитов бесплатного тарифа GitLab, и всегда доступны благодаря круглосуточной работе NAS.
Это простой способ получить стабильную CI/CD-инфраструктуру прямо у себя дома.

Похожее