Muq*_*uqq 3 .net c# docker asp.net-core
我正在尝试构建一个简单的dotnet core
应用程序并将其包装在 Docker 映像中。在镜像构建过程中,所有dotnet
命令(如dotnet restore
或dotnet build
)永远运行,没有任何进展,但占用 CPU 大约 50%。我让它运行了至少一个小时,但它从未停止过。一个正常的dotnet restore
只需要几毫秒,所以肯定有问题。
重现步骤。
\ndotnet --version
mkdir TestApplication
cd TestApplication
dotnet new console
dotnet run/restore/build
一切正常FROM mcr.microsoft.com/dotnet/core/sdk:3.1 AS build\n\nWORKDIR /\n\nCOPY *.csproj ./\nRUN dotnet restore\n\nCOPY . .\n\nRUN dotnet build\nRUN dotnet publish -c Release -o out\n\nFROM mcr.microsoft.com/dotnet/core/aspnet:3.1 AS runtime\nCOPY --from=build /aspnetapp/out ./\nENTRYPOINT ["dotnet", "aspnetapp.dll"]\n
Run Code Online (Sandbox Code Playgroud)\ndocker build -t myTestApplication .
结果:dotnet
即使在玩游戏时,在第一个命令处总是挂起。在 macOS Catalina (10.15.6) 上运行。
有人知道这里出了什么问题吗?我尝试为 Python 应用程序创建一个图像,该图像运行良好,因此它似乎与dotnet
.
编辑 1: \n添加详细日志输出:
\n(base) \xe2\x9e\x9c TestApplication docker build -t testerico .\nSending build context to Docker daemon 5.12kB\nStep 1/9 : FROM mcr.microsoft.com/dotnet/core/sdk:3.1 AS build\n ---> 9ab567a29502\nStep 2/9 : WORKDIR /\n ---> Using cache\n ---> ec8404eb93c3\nStep 3/9 : COPY *.csproj ./\n ---> Using cache\n ---> 86a4e6875b03\nStep 4/9 : RUN dotnet restore --verbosity diagnostic\n ---> Running in 1791f6205c36\n/usr/share/dotnet/sdk/3.1.401/MSBuild.dll -nologo -distributedlogger:Microsoft.DotNet.Tools.MSBuild.MSBuildLogger,/usr/share/dotnet/sdk/3.1.401/dotnet.dll*Microsoft.DotNet.Tools.MSBuild.MSBuildForwardingLogger,/usr/share/dotnet/sdk/3.1.401/dotnet.dll -maxcpucount -target:Restore -verbosity:m -verbosity:diagnostic ./TestApplication.csproj\nBuild started 08/29/2020 11:49:23.\nEnvironment at start of build:\nNUGET_XMLDOC_MODE = skip\nDOTNET_USE_POLLING_FILE_WATCHER = true\nPATH = /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin\nDOTNET_RUNNING_IN_CONTAINER = true\nHOME = /root\nDOTNET_HOST_PATH = /usr/share/dotnet/dotnet\nPOWERSHELL_DISTRIBUTION_CHANNEL = PSDocker-DotnetCoreSDK-Debian-10\nMSBuildExtensionsPath = /usr/share/dotnet/sdk/3.1.401/\nMSBuildSDKsPath = /usr/share/dotnet/sdk/3.1.401/Sdks\nHOSTNAME = 1791f6205c36\nPWD = /\nDOTNET_CLI_TELEMETRY_SESSIONID = af7fc2b0-1308-4572-99e7-30bae6e369e8\nMSBuildLoadMicrosoftTargetsReadOnly = true\n\n11:49:23.778 0>Process = "/usr/share/dotnet/dotnet"\n MSBuild executable path = "/usr/share/dotnet/sdk/3.1.401/MSBuild.dll"\n Command line arguments = "/usr/share/dotnet/sdk/3.1.401/MSBuild.dll -maxcpucount -verbosity:m -nologo -target:Restore -verbosity:diagnostic -distributedlogger:Microsoft.DotNet.Tools.MSBuild.MSBuildLogger,/usr/share/dotnet/sdk/3.1.401/dotnet.dll*Microsoft.DotNet.Tools.MSBuild.MSBuildForwardingLogger,/usr/share/dotnet/sdk/3.1.401/dotnet.dll"\n Current directory = "/"\n MSBuild version = "16.7.0-preview-20360-03+188921e2f"\n Resolving SDK \'Microsoft.NET.Sdk\'...\n Property reassignment: $(MSBuildProjectExtensionsPath)="/obj/" (previous value: "obj\\") at /usr/share/dotnet/sdk/3.1.401/Current/Microsoft.Common.props (56,5)\n Property reassignment: $(TargetsForTfmSpecificContentInPackage)=";PackTool;_PackProjectToolValidation" (previous value: ";PackTool") at /usr/share/dotnet/sdk/3.1.401/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.PackProjectTool.props (15,5)\n Property reassignment: $(OutputType)="Exe" (previous value: "Library") at /TestApplication.csproj (4,5)\n Property reassignment: $(PublishProfileImported)="false" (previous value: "true") at /usr/share/dotnet/sdk/3.1.401/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.ImportPublishProfile.targets (28,5)\n Property reassignment: $(DefaultItemExcludes)=";bin/Debug//**;obj\\Debug\\/**" (previous value: ";bin/Debug//**") at /usr/share/dotnet/sdk/3.1.401/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.TargetFrameworkInference.targets (171,5)\n Property reassignment: $(IntermediateOutputPath)="obj\\Debug\\netcoreapp3.1\\" (previous value: "obj\\Debug\\") at /usr/share/dotnet/sdk/3.1.401/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.TargetFrameworkInference.targets (185,5)\n Property reassignment: $(OutputPath)="bin/Debug/netcoreapp3.1/" (previous value: "bin/Debug/") at /usr/share/dotnet/sdk/3.1.401/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.TargetFrameworkInference.targets (186,5)\n Property reassignment: $(_FrameworkVersionForImplicitDefine)="3_1" (previous value: "3.1") at /usr/share/dotnet/sdk/3.1.401/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.BeforeCommon.targets (165,5)\n Property reassignment: $(_DebugSymbolsProduced)="true" (previous value: "false") at /usr/share/dotnet/sdk/3.1.401/Microsoft.Common.CurrentVersion.targets (149,5)\n Property reassignment: $(_DocumentationFileProduced)="false" (previous value: "true") at /usr/share/dotnet/sdk/3.1.401/Microsoft.Common.CurrentVersion.targets (158,5)\n Property reassignment: $(ProcessorArchitecture)="msil" (previous value: "") at /usr/share/dotnet/sdk/3.1.401/Microsoft.Common.CurrentVersion.targets (487,5)\n Property reassignment: $(DelaySign)="" (previous value: "false") at /usr/share/dotnet/sdk/3.1.401/Microsoft.Common.CurrentVersion.targets (527,5)\n Property reassignment: $(_SGenGenerateSerializationAssembliesConfig)="Auto" (previous value: "") at /usr/share/dotnet/sdk/3.1.401/Microsoft.Common.CurrentVersion.targets (3491,5)\n Property reassignment: $(_SGenGenerateSerializationAssembliesConfig)="Off" (previous value: "Auto") at /usr/share/dotnet/sdk/3.1.401/Microsoft.Common.CurrentVersion.targets (3492,5)\n Property reassignment: $(MSBuildAllProjects)=";/usr/share/dotnet/sdk/3.1.401/NuGet.targets;/usr/share/dotnet/sdk/3.1.401/Current/Microsoft.Common.targets/ImportAfter/Microsoft.TestPlatform.ImportAfter.targets" (previous value: ";/usr/share/dotnet/sdk/3.1.401/NuGet.targets") at /usr/share/dotnet/sdk/3.1.401/Current/Microsoft.Common.targets/ImportAfter/Microsoft.TestPlatform.ImportAfter.targets (16,5)\n Property reassignment: $(ProjectAssetsFile)="/obj/project.assets.json" (previous value: "/obj//project.assets.json") at /usr/share/dotnet/sdk/3.1.401/Sdks/Microsoft.NET.Sdk/targets/Microsoft.PackageDependencyResolution.targets (24,5)\n Property reassignment: $(ProjectAssetsCacheFile)="/obj/Debug/netcoreapp3.1/TestApplication.assets.cache" (previous value: "obj\\Debug\\netcoreapp3.1\\TestApplication.assets.cache") at /usr/share/dotnet/sdk/3.1.401/Sdks/Microsoft.NET.Sdk/targets/Microsoft.PackageDependencyResolution.targets (29,5)\n Property reassignment: $(ResolveAssemblyReferencesDependsOn)="\n \n ResolveProjectReferences;\n FindInvalidProjectReferences;\n GetFrameworkPaths;\n GetReferenceAssemblyPaths;\n PrepareForBuild;\n ResolveSDKReferences;\n ExpandSDKReferences;\n ;\n ResolvePackageDependenciesForBuild;\n _HandlePackageFileConflicts;\n " (previous value: "\n ResolveProjectReferences;\n FindInvalidProjectReferences;\n GetFrameworkPaths;\n GetReferenceAssemblyPaths;\n PrepareForBuild;\n ResolveSDKReferences;\n ExpandSDKReferences;\n ") at /usr/share/dotnet/sdk/3.1.401/Sdks/Microsoft.NET.Sdk/targets/Microsoft.PackageDependencyResolution.targets (71,5)\n Property reassignment: $(PrepareResourcesDependsOn)="\n ResolvePackageDependenciesForBuild;\n _HandlePackageFileConflicts;\n \n ;\n PrepareResourceNames;\n ResGen;\n CompileLicxFiles\n \n " (previous value: "\n ;\n PrepareResourceNames;\n ResGen;\n CompileLicxFiles\n ") at /usr/share/dotnet/sdk/3.1.401/Sdks/Microsoft.NET.Sdk/targets/Microsoft.PackageDependencyResolution.targets (77,5)\n Property reassignment: $(DefaultItemExcludes)=";bin/Debug//**;obj\\Debug\\/**;bin//**" (previous value: ";bin/Debug//**;obj\\Debug\\/**") at /usr/share/dotnet/sdk/3.1.401/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.DefaultItems.targets (27,5)\n Property reassignment: $(DefaultItemExcludes)=";bin/Debug//**;obj\\Debug\\/**;bin//**;obj\\/**" (previous value: ";bin/Debug//**;obj\\Debug\\/**;bin//**") at /usr/share/dotnet/sdk/3.1.401/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.DefaultItems.targets (29,5)\n Property reassignment: $(DefaultItemExcludes)=";bin/Debug//**;obj\\Debug\\/**;bin//**;obj\\/**;**/*.user" (previous value: ";bin/Debug//**;obj\\Debug\\/**;bin//**;obj\\/**") at /usr/share/dotnet/sdk/3.1.401/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.DefaultItems.targets (32,5)\n Property reassignment: $(DefaultItemExcludes)=";bin/Debug//**;obj\\Debug\\/**;bin//**;obj\\/**;**/*.user;**/*.*proj" (previous value: ";bin/Debug//**;obj\\Debug\\/**;bin//**;obj\\/**;**/*.user") at /usr/share/dotnet/sdk/3.1.401/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.DefaultItems.targets (33,5)\n Property reassignment: $(DefaultItemExcludes)=";bin/Debug//**;obj\\Debug\\/**;bin//**;obj\\/**;**/*.user;**/*.*proj;**/*.sln" (previous value: ";bin/Debug//**;obj\\Debug\\/**;bin//**;obj\\/**;**/*.user;**/*.*proj") at /usr/share/dotnet/sdk/3.1.401/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.DefaultItems.targets (34,5)\n Property reassignment: $(DefaultItemExcludes)=";bin/Debug//**;obj\\Debug\\/**;bin//**;obj\\/**;**/*.user;**/*.*proj;**/*.sln;**/*.vssscc" (previous value: ";bin/Debug//**;obj\\Debug\\/**;bin//**;obj\\/**;**/*.user;**/*.*proj;**/*.sln") at /usr/share/dotnet/sdk/3.1.401/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.DefaultItems.targets (35,5)\n Property reassignment: $(ResolveAssemblyReferencesDependsOn)="\n \n \n ResolveProjectReferences;\n FindInvalidProjectReferences;\n GetFrameworkPaths;\n GetReferenceAssemblyPaths;\n PrepareForBuild;\n ResolveSDKReferences;\n ExpandSDKReferences;\n ;\n ResolvePackageDependenciesForBuild;\n _HandlePackageFileConflicts;\n ;\n ResolveTargetingPackAssets;\n " (previous value: "\n \n ResolveProjectReferences;\n FindInvalidProjectReferences;\n GetFrameworkPaths;\n GetReferenceAssemblyPaths;\n PrepareForBuild;\n ResolveSDKReferences;\n ExpandSDKReferences;\n ;\n ResolvePackageDependenciesForBuild;\n _HandlePackageFileConflicts;\n ") at /usr/share/dotnet/sdk/3.1.401/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.FrameworkReferenceResolution.targets (14,5)\n Property reassignment: $(_GenerateRuntimeConfigurationPropertyInputsCache)="/obj/Debug/netcoreapp3.1/TestApplication.genruntimeconfig.cache" (previous value: "obj\\Debug\\netcoreapp3.1\\TestApplication.genruntimeconfig.cache") at /usr/share/dotnet/sdk/3.1.401/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.targets (53,5)\n Property reassignment: $(_DefaultUserProfileRuntimeStorePath)="/root/.dotnet/store" (previous value: "/root") at /usr/share/dotnet/sdk/3.1.401/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.targets (97,5)\n Property reassignment: $(CoreBuildDependsOn)="\n _CheckForBuildWithNoBuild;\n \n BuildOnlySettings;\n PrepareForBuild;\n PreBuildEvent;\n ResolveReferences;\n PrepareResources;\n ResolveKeySource;\n Compile;\n ExportWindowsMDFile;\n UnmanagedUnregistration;\n GenerateSerializationAssemblies;\n CreateSatelliteAssemblies;\n GenerateManifests;\n GetTargetPath;\n PrepareForRun;\n UnmanagedRegistration;\n IncrementalClean;\n PostBuildEvent\n ;\n GenerateBuildDependencyFile;\n GenerateBuildRuntimeConfigurationFiles\n " (previous value: "\n BuildOnlySettings;\n PrepareForBuild;\n PreBuildEvent;\n ResolveReferences;\n PrepareResources;\n ResolveKeySource;\n Compile;\n ExportWindowsMDFile;\n UnmanagedUnregistration;\n GenerateSerializationAssemblies;\n CreateSatelliteAssemblies;\n GenerateManifests;\n GetTargetPath;\n PrepareForRun;\n UnmanagedRegistration;\n IncrementalClean;\n PostBuildEvent\n ") at /usr/share/dotnet/sdk/3.1.401/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.targets (118,5)\n Property reassignment: $(CoreCleanDependsOn)="\n _SdkBeforeClean;\n \n " (previous value: "") at /usr/share/dotnet/sdk/3.1.401/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.targets (127,5)\n Property reassignment: $(RebuildDependsOn)="\n _SdkBeforeRebuild;\n \n BeforeRebuild;\n Clean;\n Build;\n AfterRebuild;\n \n " (previous value: "\n BeforeRebuild;\n Clean;\n Build;\n AfterRebuild;\n ") at /usr/share/dotnet/sdk/3.1.401/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.targets (134,5)\n Property reassignment: $(CompileDependsOn)="\n \n ResolveReferences;\n ResolveKeySource;\n SetWin32ManifestProperties;\n FindReferenceAssembliesForReferences;\n _GenerateCompileInputs;\n BeforeCompile;\n _TimeStampBeforeCompile;\n _GenerateCompileDependencyCache;\n CoreCompile;\n _TimeStampAfterCompile;\n AfterCompile;\n ;\n _CreateAppHost;\n _CreateComHost;\n _GetIjwHostPaths;\n " (previous value: "\n ResolveReferences;\n ResolveKeySource;\n SetWin32ManifestProperties;\n FindReferenceAssembliesForReferences;\n _GenerateCompileInputs;\n BeforeCompile;\n _TimeStampBeforeCompile;\n _GenerateCompileDependencyCache;\n CoreCompile;\n _TimeStampAfterCompile;\n AfterCompile;\n ") at /usr/share/dotnet/sdk/3.1.401/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.targets (396,5)\n Property reassignment: $(CreateSatelliteAssembliesDependsOn)="\n \n _GenerateSatelliteAssemblyInputs;\n ComputeIntermediateSatelliteAssemblies;\n GenerateSatelliteAssemblies\n ;\n CoreGenerateSatelliteAssemblies\n " (previous value: "\n _GenerateSatelliteAssemblyInputs;\n ComputeIntermediateSatelliteAssemblies;\n GenerateSatelliteAssemblies\n ") at /usr/share/dotnet/sdk/3.1.401/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.targets (758,5)\n Property reassignment: $(DesignerRuntimeImplementationProjectOutputGroupDependsOn)="\n \n ;\n \n ;\n BuildOnlySettings;\n PrepareForBuild;\n AssignTargetPaths;\n ResolveReferences\n \n ;\n _GenerateDesignerDepsFile;\n _GenerateDesignerRuntimeConfigFile;\n _GatherDesignerShadowCopyFiles;\n " (previous value: "\n ;\n \n ;\n BuildOnlySettings;\n PrepareForBuild;\n AssignTargetPaths;\n ResolveReferences\n \n ") at /usr/share/dotnet/sdk/3.1.401/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.DesignerSupport.targets (21,5)\n Property reassignment: $(_ShimInputCacheFile)="/obj/Debug/netcoreapp3.1/TestApplication.shiminput.cache" (previous value: "obj\\Debug\\netcoreapp3.1\\TestApplication.shiminput.cache") at /usr/share/dotnet/sdk/3.1.401/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.PackTool.targets (94,5)\n Property reassignment: $(_ShimCreatedSentinelFile)="/obj/Debug/netcoreapp3.1/TestApplication.shimcreated.sentinel" (previous value: "obj\\Debug\\netcoreapp3.1\\TestApplication.shimcreated.sentinel") at /usr/share/dotnet/sdk/3.1.401/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.PackTool.targets (96,5)\n Property reassignment: $(DefineConstants)="TRACE;DEBUG" (previous value: "TRACE") at /usr/share/dotnet/sdk/3.1.401/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.CSharp.targets (31,5)\n Property reassignment: $(Def
我认为这个问题缺少
WORKDIR /app
指令,我添加了它,现在它正在工作。太奇怪了...
https://github.com/dotnet/core/issues/1825
因此,更改WORKDIR /
为WORKDIR /app
应该可以解决问题。
来自 Core 3.1 文档的 Docker 文件:https://docs.docker.com/engine/examples/dotnetcore/
VS 生成的典型 Docker 文件如下所示,并使用 Core Debian 映像(我在部署到 OpenShift/Kubernetes 时也在使用它)。在下面的示例中,我的应用程序名为“WebApplication”。
#See https://aka.ms/containerfastmode to understand how Visual Studio uses this Dockerfile to build your images for faster debugging.
FROM mcr.microsoft.com/dotnet/core/aspnet:3.1-buster-slim AS base
WORKDIR /app
EXPOSE 80
EXPOSE 443
FROM mcr.microsoft.com/dotnet/core/sdk:3.1-buster AS build
WORKDIR /src
COPY ["WebApplication.csproj", ""]
RUN dotnet restore "./WebApplication.csproj"
COPY . .
WORKDIR "/src/."
RUN dotnet build "WebApplication.csproj" -c Release -o /app/build
FROM build AS publish
RUN dotnet publish "WebApplication.csproj" -c Release -o /app/publish
FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "WebApplication.dll"]
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2259 次 |
最近记录: |