From 259b2c3d40c4413cc3913f57ac74e6c1beda268f Mon Sep 17 00:00:00 2001 From: Chet Husk Date: Mon, 7 Jul 2025 22:45:24 -0500 Subject: [PATCH 1/2] Update DockerRegistryManager.cs --- .../DockerRegistryManager.cs | 30 +++++++++++++++---- 1 file changed, 25 insertions(+), 5 deletions(-) diff --git a/src/Tests/Microsoft.NET.Build.Containers.IntegrationTests/DockerRegistryManager.cs b/src/Tests/Microsoft.NET.Build.Containers.IntegrationTests/DockerRegistryManager.cs index 53954b10427b..e90f3f713a22 100644 --- a/src/Tests/Microsoft.NET.Build.Containers.IntegrationTests/DockerRegistryManager.cs +++ b/src/Tests/Microsoft.NET.Build.Containers.IntegrationTests/DockerRegistryManager.cs @@ -20,11 +20,31 @@ public class DockerRegistryManager public const string FullyQualifiedBaseImageAspNet = $"{BaseImageSource}/{AspNetBaseImage}:{Net8PreviewImageTag}"; private static string? s_registryContainerId; - public static void StartAndPopulateDockerRegistry(ITestOutputHelper testOutput) + private static string SDK_AzureContainerRegistryImage => "dotnetdhmirror-f8bzbjakh8cga6ab.azurecr.io/registry:2"; + private static string Docker_HubRegistryImage => "docker.io/library/registry:2"; + + // TODO: some logic to pivot between this and Docker Hub + private static string RegistryImageToUse => SDK_AzureContainerRegistryImage; + + internal class SameArchManifestPicker : IManifestPicker + { + public PlatformSpecificManifest? PickBestManifestForRid(IReadOnlyDictionary manifestList, string runtimeIdentifier) + { + return manifestList.Values.SingleOrDefault(m => m.platform.os == "linux" && m.platform.architecture == "amd64"); + } + + public PlatformSpecificOciManifest? PickBestManifestForRid(IReadOnlyDictionary manifestList, string runtimeIdentifier) + { + return manifestList.Values.SingleOrDefault(m => m.platform.os == "linux" && m.platform.architecture == "amd64"); + } + } + + public static async Task StartAndPopulateDockerRegistry(ITestOutputHelper testOutput) { using TestLoggerFactory loggerFactory = new(testOutput); - if (!new DockerCli(loggerFactory).IsAvailable()) { + if (!new DockerCli(loggerFactory).IsAvailable()) + { throw new InvalidOperationException("Docker is not available, tests cannot run"); } @@ -40,7 +60,7 @@ public static void StartAndPopulateDockerRegistry(ITestOutputHelper testOutput) { logger.LogInformation("Spawning local registry at '{registry}', attempt #{attempt}.", LocalRegistry, spawnRegistryAttempt); - CommandResult processResult = ContainerCli.RunCommand(testOutput, "--rm", "--publish", "5010:5000", "--detach", "docker.io/library/registry:2").Execute(); + CommandResult processResult = ContainerCli.RunCommand(testOutput, "--rm", "--publish", "5010:5000", "--detach", RegistryImageToUse).Execute(); processResult.Should().Pass().And.HaveStdOut(); @@ -59,7 +79,7 @@ public static void StartAndPopulateDockerRegistry(ITestOutputHelper testOutput) .Execute() .Should().Pass(); - logger.LogInformation("Tagging image '{sourceRepo}/{sourceImage}:{sourceTag}' as '{targetRepo}/{targetImage}:{targetTag}'.",BaseImageSource, RuntimeBaseImage, tag, LocalRegistry, RuntimeBaseImage, tag); + logger.LogInformation("Tagging image '{sourceRepo}/{sourceImage}:{sourceTag}' as '{targetRepo}/{targetImage}:{targetTag}'.", BaseImageSource, RuntimeBaseImage, tag, LocalRegistry, RuntimeBaseImage, tag); ContainerCli.TagCommand(testOutput, $"{BaseImageSource}/{RuntimeBaseImage}:{tag}", $"{LocalRegistry}/{RuntimeBaseImage}:{tag}") .Execute() .Should().Pass(); @@ -84,7 +104,7 @@ public static void StartAndPopulateDockerRegistry(ITestOutputHelper testOutput) { ContainerCli.StopCommand(testOutput, s_registryContainerId).Execute(); } - catch(Exception ex2) + catch (Exception ex2) { logger.LogError(ex2, "Failed to stop the registry {id}.", s_registryContainerId); } From acb7df6756d6ea1d304cc0e9ec78c45593c9598d Mon Sep 17 00:00:00 2001 From: Noah Gilson Date: Tue, 8 Jul 2025 10:54:54 -0700 Subject: [PATCH 2/2] Fix Containers Issue in 8.0.1xx Co-authored-by: Chet Husk --- .../DockerRegistryManager.cs | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/src/Tests/Microsoft.NET.Build.Containers.IntegrationTests/DockerRegistryManager.cs b/src/Tests/Microsoft.NET.Build.Containers.IntegrationTests/DockerRegistryManager.cs index e90f3f713a22..bceb7393c5bd 100644 --- a/src/Tests/Microsoft.NET.Build.Containers.IntegrationTests/DockerRegistryManager.cs +++ b/src/Tests/Microsoft.NET.Build.Containers.IntegrationTests/DockerRegistryManager.cs @@ -26,18 +26,6 @@ public class DockerRegistryManager // TODO: some logic to pivot between this and Docker Hub private static string RegistryImageToUse => SDK_AzureContainerRegistryImage; - internal class SameArchManifestPicker : IManifestPicker - { - public PlatformSpecificManifest? PickBestManifestForRid(IReadOnlyDictionary manifestList, string runtimeIdentifier) - { - return manifestList.Values.SingleOrDefault(m => m.platform.os == "linux" && m.platform.architecture == "amd64"); - } - - public PlatformSpecificOciManifest? PickBestManifestForRid(IReadOnlyDictionary manifestList, string runtimeIdentifier) - { - return manifestList.Values.SingleOrDefault(m => m.platform.os == "linux" && m.platform.architecture == "amd64"); - } - } public static async Task StartAndPopulateDockerRegistry(ITestOutputHelper testOutput) {