Gitlab runner извлекает субмодуль из неверного URI - PullRequest
0 голосов
/ 17 июня 2019

Я запускаю локальный экземпляр Gitlab на моем сервере, который я нахожусь в процессе настройки для поддержки CI для моего проекта. Я использую собственный образ докера, который основан на Ubuntu 18.04 LTS и доступен на сервере.

В проекте используется субмодуль, который я изначально добавил, используя его URL-адрес Github SSH. Это работало нормально до сегодняшнего дня, когда я понял, что шаг git submodule update не выполнялся из-за отсутствия разрешений, так как ключ SSH отсутствовал в контейнере. Чтение многих замечательных постов здесь и в других местах заставило меня принять решение переключить URL подмодуля на HTTPS, чтобы избежать возни с SSH-ключами. Вот как выглядит файл .gitmodules:

[submodule "externals/translation-server"]
    path = externals/translation-server
    url = https://github.com/zotero/translation-server.git

Однако всякий раз, когда запускается gitlab, он все еще пытается клонировать подмодуль из его старого SSH URL:

$ git submodule update --init --remote --merge
Cloning into '/builds/com/prj/externals/translation-server'...
Host key verification failed.
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.
fatal: clone of 'git@github.com:zotero/translation-server.git' into submodule path '/builds/com/prj/externals/translation-server' failed
Failed to clone 'externals/translation-server'. Retry scheduled
Cloning into '/builds/com/prj/externals/translation-server'...
Host key verification failed.
fatal: Could not read from remote repository.

Когда я запускаю docker-контейнер и выполняю шаги, предпринятые gitlab runner вручную, все работает правильно:

# docker run -i -t -v`pwd`:/builds/com/prj docker-image /bin/bash
root@fcc6b0d990ad:/# cd /builds/com/prj/
root@fcc6b0d990ad:/builds/com/prj# git submodule update --init --recursive --remote --merge
Cloning into '/builds/com/prj/externals/translation-server/modules/zotero'...
Submodule path 'externals/translation-server/modules/zotero': checked out '42782f73fbddc1a44d9b655ad4c715de05b07345'

Чтобы проверить теорию, что с Gitlab или бегуном что-то не так, я создал тестовое хранилище, а затем:

Затем я наблюдал за выполнением задания и ... оно работало, как и ожидалось: модуль был извлечен из URL-адреса HTTPS, и никаких ошибок не произошло.

Возможно, бегун gitlab использует какое-то кэширование, которое переопределяет HTTP-адрес модуля в .gitmodules? Что еще я могу сделать для дальнейшего изучения этой проблемы?

Я был бы очень признателен за помощь в диагностике этого.

...