Авторизация докера для агента TeamCity под Windows 10

У меня есть:

  • TeamCity CI
  • Агент TeamCity, установленный в Windows 10 как служба Windows
  • Некоторые проекты Java с интеграционными тестами на основе TestContainers framework.
  • Экземпляр Sonatype Nexus, настроенный как частный реестр докеров

Тесты на основе TestContainers требуют, чтобы докер был доступен во время сборки проекта. Все изображения, необходимые для выполнения тестов, находятся в Nexus. Что, в свою очередь, означает - чтобы выполнить тесты на CI, я должен аутентифицировать докеры в Nexus, чтобы иметь возможность их вытащить. И вот откуда взялась проблема.

Я не понимаю, как мне аутентифицировать докер для чего-то, то есть для службы Windows (агент TeamCity).

Обычно это делается с помощью входа в докер . Я попытался выполнить вход в докер из административной оболочки PowerShell на хосте агента, и это действительно получилось - теперь я могу извлекать изображения из консоли администратора. Но попытка запустить тесты на агенте TeamCity терпит неудачу, сталкиваясь с ошибкой 401 Unauthorized при попытке вытащить изображения из Nexus. Мол, служба выполняется от какого-то пользователя, для которого вход в докер не производился.

Как сделать так, чтобы докер был авторизован в частном реестре докеров для службы агента Windows 10 TeamCity?

1
задан 20 July 2021 в 15:57
1 ответ

Вы можете настроить авторизацию докеров в Teamcity, выбрав «Конфигурация сборки» -> «Функции сборки» -> «Добавить функцию сборки» -> «Поддержка докеров» -> «Добавить подключение к реестру»

1
ответ дан 28 July 2021 в 13:08

Теги

Похожие вопросы