Gitlab CI Shell Runner возвращает ошибку 500

Я пробую Gitlab и установил его из установщика омнибуса. Затем я загрузил и установил gitlab-runner, чтобы опробовать функции CI. Я создал новый бегун, установил токен доступа для проекта, в котором я пытаюсь запустить CI, установил для экзекьютера оболочку и добавил в проект .gitlab-ci.yml.

Когда я нажал, задание было подхвачено бегуном и сразу же провалилось со следующим выводом

Cloning repository...
Initialized empty Git repository in /sites/gitlab/git-data/repositories/xxxx/builds/9f19e8df/0/xxxx/ci/.git/
error: The requested URL returned error: 500 Internal Server Error while accessing http://gitlab-ci-token:xxxxxxxxxxxxxxxxxxxx@xxxx/xxxx/ci.git/info/refs

fatal: HTTP request failed

ERROR: Job failed: exit status 1

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

Running with gitlab-runner 10.6.0 (a3543a27)        job=10 project=11 runner=9f19e8df
on SharedRunner 9f19e8df                          job=10 project=11 runner=9f19e8df
Shell configuration: environment: []
dockercommand:
- sh
- -c
- "if [ -x /usr/local/bin/bash ]; then\n\texec /usr/local/bin/bash --login\nelif [
-x /usr/bin/bash ]; then\n\texec /usr/bin/bash --login\nelif [ -x /bin/bash ]; then\n\texec
/bin/bash --login\nelif [ -x /usr/local/bin/sh ]; then\n\texec /usr/local/bin/sh
--login\nelif [ -x /usr/bin/sh ]; then\n\texec /usr/bin/sh --login\nelif [ -x /bin/sh
]; then\n\texec /bin/sh --login\nelse\n\techo shell not found\n\texit 1\nfi\n\n"
command: bash
arguments:
- --login
passfile: false
extension: ""
job=10 project=11 runner=9f19e8df
Using Shell executor...                             job=10 project=11 runner=9f19e8df
Waiting for signals...                              job=10 project=11 runner=9f19e8df
WARNING: Job failed: exit status 1                  job=10 project=11 runner=9f19e8df

Журнал ошибок выводит

"GET /xxxx/ci.git/info/refs?service=git-upload-pack HTTP/1.1" 500 2902 "-" "git/1.7.1"
"GET /xxxx/ci.git/info/refs HTTP/1.1" 401 26 "-" "git/1.7.1"
"GET /xxxx/ci.git/info/refs HTTP/1.1" 500 2902 "-" "git/1.7.1"

Мне кажется, что мне не хватает чего-то фундаментального, но, просматривая документацию и статьи по использованию gitlab-runner, я не уверен, что именно.

Он работает на RHEL 7, и единственные изменения в конфигурации, которые я внес, - это отключить nginx, поскольку я обслуживаю его на apache, и переместить каталоги хранения данных.

Любая помощь будет принята с благодарностью

Спасибо

Колин


person Yokall    schedule 01.05.2018    source источник


Ответы (1)


Хорошо, поэтому поиск команды sudo gitlab-ctl tail предоставил детали, необходимые для отслеживания ответа

JWT::DecodeError (Nil JSON web token): lib/gitlab/workhorse.rb:120:in `verify_api_request!' app/controllers/projects/git_http_client_controller.rb:154:in `verify_workhorse_api!' lib/gitlab/questure_profiler/middleware.rb:15:in `call' lib/gitlab/middleware/go.rb:16:in `call'

Я погуглил ошибку и столкнулся с этой проблемой Ошибка 500 Gitlab

Итак, важная деталь, которую я упустил из своего вопроса, заключается в том, что я использовал Apache в качестве интерфейса. Если вы посмотрите на нижний комментарий к проблеме, он покажет вам, как обновить конфигурацию виртуального хоста, чтобы решить эту проблему. К сожалению, моя версия Apache - 2.2, и вам нужно 2.4, чтобы исправление работало.

Вместо этого я изменил порт Apache по умолчанию, а затем изменил конфигурацию Gitlabs, чтобы использовать встроенный сервер nginx. Теперь все работает отлично, без лишних хлопот :)

person Yokall    schedule 12.05.2018