Gitlab-Runner: отказано в разрешении на клонирование от мастера - PullRequest
0 голосов
/ 26 мая 2020

Я искал способ реализовать конвейер CI / CD в моих проектах. Я решил использовать Gitlab с его технологией gitlab-runner. Я пытался использовать его через docker контейнеров, но после более чем 100 попыток решил установить его на машине.

Я шаг за шагом следовал официальному руководству Gitlab . Все работает отлично; Я запускаю регистр, правильно заполняю все поля и go включаю, чтобы записать .gitlab-ci.yml:

image: docker:latest

services:
- docker:18.09.9-dind

stages:
  - deploy

step-deploy-prod:
  stage: deploy
  only:
    - master
  script:
    - docker-compose up -d --build
  when: always
  environment: master

Как вы можете представить, глядя на файл yml, когда какая-то операция выполняется на главном устройстве, конвейер запускается и банально выполняет команду docker -compose up --build -d (рассматриваемый проект - это приложение PHP с базой данных SQL, развернутое через compose).

Первый запуск: Абсолютно идеально; конвейер запускается, сборка выполняется правильно и правильно помещается в оперативный режим

Второй и следующие 140 запусков: Это кошмар. Более 140 сборок потерпели неудачу по той же причине; при клонировании репозитория бегун, похоже, не имеет прав на запись в свой домашний каталог (/ home / gitlab-runner / builds / ...).

enter image description here

Если я вручную удалю вложенную папку внутри сборок / бегун будет работать, но только для одного запуска, то такая же ситуация.

Я пытался:

  • запустить chown gitlab-runner: gitlab-runner в его домашнем каталоге (также как pre_clone_script в файле TOML);
  • добавить gitlab-runner в группу sudoers;
  • Я добавил gitlab-runner в группу docker;
  • ряд операций с правами доступа к файлам, затем chmod 777, chgrp с группой runner и многое другое .
...