Je l'ai fait :
- TeamCity CI
- Agent TeamCity, installé dans Windows 10 comme un service Windows
- Quelques projets Java avec des tests d'intégration, basés sur TestContainers cadre.
- Instance Sonatype Nexus, configurée comme registre docker privé
Les tests basés sur TestContainers nécessitent que docker soit disponible lors de la construction du projet. Toutes les images nécessaires à l'exécution des tests sont situées dans Nexus. Ce qui signifie que pour exécuter les tests sur CI, je dois authentifier docker dans Nexus pour pouvoir les extraire. Et c'est de là que vient le problème.
Je ne comprends pas comment je dois authentifier Docker pour un service Windows (agent TeamCity).
Habituellement, c'est fait par docker login
. J'ai essayé d'exécuter docker login
à partir du PowerShell de l'administrateur sur l'hôte de l'agent, et cela a réussi - je suis maintenant capable de tirer des images à partir de la console de l'administrateur. Mais la tentative d'exécution des tests sur l'agent TeamCity échoue, avec une erreur 401 Unauthorized lors de la tentative d'extraction des images de Nexus. Comme, le service est exécuté à partir d'un certain utilisateur, pour lequel docker login
n'a pas été fait.
Comment faire pour que docker soit autorisé dans le registre privé de docker pour le service d'agent TeamCity de Windows 10 ?