public static EnvironmentVariableInfo GetAspnetVersionVariableInfo(ProductImageData imageData, DockerHelper dockerHelper) { if (imageData.Version.Major >= 5) { string version = imageData.GetProductVersion(DotNetImageType.Aspnet, dockerHelper); return(new EnvironmentVariableInfo("ASPNET_VERSION", version)); } return(null); }
public void VerifyEnvironmentVariables(ProductImageData imageData) { List <EnvironmentVariableInfo> variables = new() { new EnvironmentVariableInfo("ASPNETCORE_URLS", string.Empty), new EnvironmentVariableInfo("DOTNET_GENERATE_ASPNET_CERTIFICATE", "false"), new EnvironmentVariableInfo("DOTNET_USE_POLLING_FILE_WATCHER", "true"), new EnvironmentVariableInfo("NUGET_XMLDOC_MODE", "skip") }; variables.AddRange(GetCommonEnvironmentVariables()); if (imageData.Version.Major >= 3) { variables.Add(new EnvironmentVariableInfo("POWERSHELL_DISTRIBUTION_CHANNEL", allowAnyValue: true)); } if (imageData.Version.Major >= 5) { string version = imageData.GetProductVersion(ImageType, DockerHelper); variables.Add(new EnvironmentVariableInfo("DOTNET_SDK_VERSION", version)); } if (imageData.Version.Major >= 5) { variables.Add(AspnetImageTests.GetAspnetVersionVariableInfo(imageData, DockerHelper)); variables.Add(RuntimeImageTests.GetRuntimeVersionVariableInfo(imageData, DockerHelper)); } if (imageData.Version.Major >= 6) { variables.Add(new EnvironmentVariableInfo("DOTNET_NOLOGO", "true")); } if (imageData.Version.Major == 6) { variables.Add(new EnvironmentVariableInfo("Logging__Console__FormatterName", string.Empty)); } if (imageData.SdkOS.StartsWith(OS.AlpinePrefix)) { variables.Add(new EnvironmentVariableInfo("DOTNET_SYSTEM_GLOBALIZATION_INVARIANT", "false")); if (imageData.Version.Major < 5) { variables.Add(new EnvironmentVariableInfo("LC_ALL", "en_US.UTF-8")); variables.Add(new EnvironmentVariableInfo("LANG", "en_US.UTF-8")); } } EnvironmentVariableInfo.Validate(variables, imageData.GetImage(DotNetImageType.SDK, DockerHelper), imageData, DockerHelper); }
public void VerifyEnvironmentVariables(ProductImageData imageData) { List <EnvironmentVariableInfo> variables = new List <EnvironmentVariableInfo>(); variables.AddRange(GetCommonEnvironmentVariables()); string aspnetUrlsValue = imageData.Version.Major < 3 ? "http://+:80" : string.Empty; variables.Add(new EnvironmentVariableInfo("ASPNETCORE_URLS", aspnetUrlsValue)); variables.Add(new EnvironmentVariableInfo("DOTNET_USE_POLLING_FILE_WATCHER", "true")); variables.Add(new EnvironmentVariableInfo("NUGET_XMLDOC_MODE", "skip")); if (imageData.Version.Major >= 3) { variables.Add(new EnvironmentVariableInfo("POWERSHELL_DISTRIBUTION_CHANNEL", allowAnyValue: true)); } if (imageData.Version.Major >= 5 || (imageData.Version.Major == 2 && DockerHelper.IsLinuxContainerModeEnabled)) { string version = imageData.GetProductVersion(ImageType, DockerHelper); variables.Add(new EnvironmentVariableInfo("DOTNET_SDK_VERSION", version)); } if (imageData.Version.Major >= 5) { variables.Add(AspnetImageTests.GetAspnetVersionVariableInfo(imageData, DockerHelper)); variables.Add(RuntimeImageTests.GetRuntimeVersionVariableInfo(imageData, DockerHelper)); } if (imageData.SdkOS.StartsWith(OS.AlpinePrefix)) { variables.Add(new EnvironmentVariableInfo("DOTNET_SYSTEM_GLOBALIZATION_INVARIANT", "false")); if (imageData.Version.Major < 5) { variables.Add(new EnvironmentVariableInfo("LC_ALL", "en_US.UTF-8")); variables.Add(new EnvironmentVariableInfo("LANG", "en_US.UTF-8")); } } EnvironmentVariableInfo.Validate(variables, DotNetImageType.SDK, imageData, DockerHelper); }
public static EnvironmentVariableInfo GetAspnetVersionVariableInfo(ProductImageData imageData, DockerHelper dockerHelper) { string versionEnvName = null; if (imageData.Version.Major == 2 && DockerHelper.IsLinuxContainerModeEnabled) { versionEnvName = "ASPNETCORE_VERSION"; } else if (imageData.Version.Major >= 5) { versionEnvName = "ASPNET_VERSION"; } if (versionEnvName != null) { string version = imageData.GetProductVersion(DotNetImageType.Aspnet, dockerHelper); return(new EnvironmentVariableInfo(versionEnvName, version)); } return(null); }
private async Task <IEnumerable <SdkContentFileInfo> > GetExpectedSdkContentsAsync(ProductImageData imageData) { string sdkVersion = imageData.GetProductVersion(ImageType, DockerHelper); string osType = DockerHelper.IsLinuxContainerModeEnabled ? "linux" : "win"; if (imageData.SdkOS.StartsWith(OS.AlpinePrefix)) { osType += "-musl"; } string fileType = DockerHelper.IsLinuxContainerModeEnabled ? "tar.gz" : "zip"; string architecture = imageData.Arch switch { Arch.Amd64 => "x64", Arch.Arm => "arm", Arch.Arm64 => "arm64", _ => throw new InvalidOperationException($"Unexpected architecture type: '{imageData.Arch}'"), }; string sdkUrl = $"https://dotnetcli.azureedge.net/dotnet/Sdk/{sdkVersion}/dotnet-sdk-{sdkVersion}-{osType}-{architecture}.{fileType}"; if (!s_sdkContentsCache.TryGetValue(sdkUrl, out IEnumerable <SdkContentFileInfo> files)) { string sdkFile = Path.GetTempFileName(); using WebClient webClient = new WebClient(); await webClient.DownloadFileTaskAsync(new Uri(sdkUrl), sdkFile); files = EnumerateArchiveContents(sdkFile) .OrderBy(file => file.Path) .ToArray(); s_sdkContentsCache.Add(sdkUrl, files); } return(files); }
public static EnvironmentVariableInfo GetRuntimeVersionVariableInfo(ProductImageData imageData, DockerHelper dockerHelper) { string version = imageData.GetProductVersion(DotNetImageType.Runtime, dockerHelper); return(new EnvironmentVariableInfo("DOTNET_VERSION", version)); }