Gitlab CI Shell Runner возвращает ошибку 500 - PullRequest
0 голосов
/ 01 мая 2018

Я пробую Gitlab и установил его из установщика omnibus. Затем я скачал и установил 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, и перемещение каталогов хранения данных.

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

Спасибо

Colin

1 Ответ

0 голосов
/ 12 мая 2018

Хорошо, поэтому поиск команды 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. Теперь все работает без лишних хлопот:)

...