From 8e173757ea5c56c10f6457c134d1bcc0bf1512fa Mon Sep 17 00:00:00 2001 From: maliming Date: Tue, 16 May 2023 13:11:06 +0800 Subject: [PATCH] Add `UpdateDockerImagesStep`. --- .../Microservice/MicroserviceTemplateBase.cs | 6 +++++ .../Microservice/UpdateDockerImagesStep.cs | 25 +++++++++++++++++++ 2 files changed, 31 insertions(+) create mode 100644 framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/Microservice/UpdateDockerImagesStep.cs diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/Microservice/MicroserviceTemplateBase.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/Microservice/MicroserviceTemplateBase.cs index 88fc0dfcbe..b8d320fb45 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/Microservice/MicroserviceTemplateBase.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/Microservice/MicroserviceTemplateBase.cs @@ -25,6 +25,7 @@ public abstract class MicroserviceTemplateBase : TemplateInfo RandomizeStringEncryption(context, steps); RandomizeAuthServerPassPhrase(context, steps); UpdateNuGetConfig(context, steps); + UpdateDockerImages(context, steps); ConfigureTheme(context, steps); return steps; @@ -221,4 +222,9 @@ public abstract class MicroserviceTemplateBase : TemplateInfo { steps.Add(new RandomizeAuthServerPassPhraseStep()); } + + private static void UpdateDockerImages(ProjectBuildContext context, List steps) + { + steps.Add(new UpdateDockerImagesStep("/etc/docker/docker-compose.infrastructure.yml")); + } } diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/Microservice/UpdateDockerImagesStep.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/Microservice/UpdateDockerImagesStep.cs new file mode 100644 index 0000000000..752503c871 --- /dev/null +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/Microservice/UpdateDockerImagesStep.cs @@ -0,0 +1,25 @@ +using System.Linq; +using System.Runtime.InteropServices; +using Volo.Abp.Cli.ProjectBuilding.Building; +using Volo.Abp.Cli.ProjectBuilding.Files; + +namespace Volo.Abp.Cli.ProjectBuilding.Templates.Microservice; + +public class UpdateDockerImagesStep : ProjectBuildPipelineStep +{ + private readonly string _ymlFilePath; + + public UpdateDockerImagesStep(string ymlFilePath) + { + _ymlFilePath = ymlFilePath; + } + + public override void Execute(ProjectBuildContext context) + { + if (RuntimeInformation.IsOSPlatform(OSPlatform.OSX) && RuntimeInformation.OSArchitecture == Architecture.Arm64) + { + var file = context.Files.FirstOrDefault(f => f.Name == _ymlFilePath); + file?.ReplaceText("mcr.microsoft.com/mssql/server:2019-latest", "mcr.microsoft.com/azure-sql-edge"); + } + } +}