Gitlab runner + автомасштабирование + масштабированные параметры бегуна

Я использую gitlab runner с исполнителем docker+machine для запуска автомасштабированных бегунов на AWS. Я хотел бы использовать настройку docker-in-docker внутри runners для создания контейнеров, но я не могу определить, как определить необходимые свойства [runners.docker] для порожденных бегунов, чтобы включить использование докеров.

Возможно ли каким-либо образом передать некоторую конфигурационную информацию автоскарелям?

Ответ 1

вам просто нужно это в вашем config.toml вашего автозапуска:

[runners.docker]
  privileged = true

Я использую docker-in-docker для создания собственных контейнеров php для тестирования и хранения их в реестре gitlabs. см. https://gitlab.cwd.at/docker/php/builds/21582 для примера сборки и https://gitlab.cwd.at/docker/php/blob/master/.gitlab-ci.yml для определения построения

см. здесь мою текущую конфигурацию - ее использование S3 для кеширования и digitalocean для бегунов:

concurrent = 10

[[runners]]
  name = "ec2-autoscale-runner"
  url = "https://gitlab.mydomain.at/ci"
  token = "12345"
  executor = "docker+machine"
  limit = 10
  environment = ["COMPOSER_CACHE_DIR=/cache"]
  [runners.machine]
    OffPeakPeriods = [               # Set the Off Peak time mode on for:
      "* * 0-9,18-23 * * mon-fri *", # - Monday to Friday for 12am to 9am and 6pm to 11pm
      "* * * * * sat,sun *"          # - whole Saturday and Sunday
    ]
    OffPeakIdleCount = 0             # There must be 1 machine in Idle state - when Off Peak time mode is on
    OffPeakIdleTime = 3550           # Each machine can be in Idle state up to 1200 seconds (after this it will be removed) - when Off Peak time mode is on
    IdleCount = 0                    # There must be 5 machines in Idle state - when Off Peak time mode is off
    IdleTime = 3550                  # Each machine can be in Idle state up to 600 seconds (after this it will be removed) - when Off Peak time mode is off
    MaxBuilds = 100                    # Each machine can handle up to 100 builds in a row (after this it will be removed)
    MachineName = "auto-scale-%s"    # Each machine will have a unique name ('%s' is required)
    MachineDriver = "digitalocean"   # Docker Machine is using the 'digitalocean' driver
    MachineOptions = [
        "digitalocean-image=21937863",
        #"digitalocean-image=20969606",
        "digitalocean-access-token=12345",
        "digitalocean-region=fra1",
        "digitalocean-size=4gb",
        "digitalocean-private-networking",
        "digitalocean-ipv6=true"
    ]
  [runners.ssh]
    user = "root"
    identity_file = "/etc/gitlab-runner/id_rsa"
  [runners.docker]
    privileged = true
  [runners.cache]
    Type = "s3"
    ServerAddress = "s3.amazonaws.com"
    AccessKey = "1234"
    SecretKey = "1234"
    BucketName = "cwd-gitlab-cache"
    BucketLocation = "eu-central-1"
    Insecure = false