我有:
- TeamCity 持续集成
- TeamCity 代理,作为 Windows 服务安装在 Windows 10 中
- 一些带有集成测试的 Java 项目,基于测试容器框架。
- Sonatype Nexus 实例,配置为私有 docker 注册表
基于 TestContainers 的测试要求在项目构建期间有可用的 docker。测试执行所需的所有图像都位于 Nexus 中。这反过来意味着 - 为了在 CI 上执行测试,我应该将 docker 验证到 Nexus 中,以便能够提取它们。这就是问题的根源。
我不明白我应该如何验证docker的有效性,也就是windows服务(TeamCity代理)。
通常,它是通过 完成的docker login
。我尝试docker login
从代理主机上的管理员 PowerShell 执行,并且成功了 - 我现在可以从管理员控制台提取图像。但尝试在 TeamCity 代理上运行测试失败,在尝试从 Nexus 提取图像时遇到 401 Unauthorized。例如,服务是从某个用户执行的,但尚未docker login
完成。
我应该如何让docker授权进入Windows 10 TeamCity代理服务的私有docker注册表?
答案1
您可以通过前往“构建配置”->“构建功能”->“添加构建功能”->“Docker 支持”->“添加注册表连接”在 Teamcity 中设置 docker 授权