Docker在VS中运行但在发布到AWS时出现错误?错误CS5001:程序不包含适用于入口点的静态“main”方法我为VisualStudio2017安装了AWS工具包(V15.7.3)并创建了一个新的空Asp。净核心2.1项目。我可以在VisualStudio中运行它。加载项目后的VisualStudioDocker输出==========准备容器==========准备好Docker容器...docker-compose-f"C:workStratsdocker-compose.yml"-f"C:workStratsdocker-compose.override.yml"-f"C:workStratsobjDockerdocker-compose.vs.debug.g.yml"-pdockercompose607729401690719332--no-ansi配置未设置DOCKER_REGISTRY变量。默认为空字符串。服务:processfiles:构建:上下文:C:workStratsdockerfile:ProcessFiles/Dockerfile目标:基本入口点:tail-f/dev/null环境:ASPNETCORE_ENVIRONMENT:开发ASPNETCORE_HTTPS_PORT:'44347'ASPNETCORE_URLS:https://+:443;http://+:80DOTNET_USE_POLLING_FILE_WATCHER:'1'NUGET_FALLBACK_PACKAGES:/root/.nuget/fallbackpackagesimage:processfiles:dev标签:com.microsoft.visualstudio.debuggee.arguments:'-additionalProbingPath/root/.nuget/packages--additionalProbingPath/root/.nuget/fallbackpackagesbin/Debug/netcoreapp2.1/ProcessFiles.dll'com.microsoft.visualstudio.debuggee.killprogram:/bin/bash-c"ifPID=$$(pidof-xdotnet);然后kill死$$PID;sci"com.microsoft.visualstudio.debuggee.program:dotnetcom.microsoft.visualstudio.debuggee.workingdirectory:/appport:-Publication:49971Target:80-Publication:44347Target:443Volume:-C:workStratsProcessFiles:/app:rw-C:Users...vsdbgvs2017u5:/remote_debugger:ro-C:Users...AppDataRoamingASP.NETHttps:/root/.aspnet/https:ro-C:Users...AppDataRoamingMicrosoftUserSecrets:/root/.microsoft/usersecrets:ro-C:ProgramFilesdotnetsdkNuGetFallbackFolder:/root/.nuget/fallbackpackages:ro-C:Users...nugetpackages:/root/.nuget/packages:ro版本:'3.4'dockerps--filter“status=running”--filter“name=dockercompose607729401690719332_processfiles_”--format{{。ID}}-n1docker-compose-f“C:workStratsdocker-compose.yml”-f“C:工作Stratsdocker-compose.override.yml”-f“C:工作StratsobjDockerdocker-compose.vs.debug.g.yml“-pdockercompose607729401690719332--no-ansibuild未设置DOCKER_REGISTRY变量。默认为空字符串。构建过程文件步骤1/4:FROMmicrosoft/dotnet:2.1-aspnetcore-runtimeASbase--->04aae08f15c5步骤2/4:WORKDIR/app--->USECache--->135955e04284步骤3/4:EXPOSE49971--->使用缓存--->2e1bb95e0d70步骤4/4:EXPOSE44347--->使用缓存--->89dc3708552d成功构建89dc3708552d成功标记进程文件:devdocker-compose-f"C:workStratsdocker-compose.yml"-f"C:workStratsdocker-compose.override.yml"-f"C:workStratsobjDockerdocker-compose.vs.debug.g.yml"-pdockercompose607729401690719332--no-ansiup-d--no-build--force-recreate--remove-orphans不设置DOCKER_REGISTRY变量。默认为空字符串。使用默认驱动程序创建网络“dockercompose607729401690719332_default”创建dockercompose607729401690719332_processfiles_1...创建dockercompose607729401690719332_processfiles_1...完成完成!Docker容器已准备就绪。在VisualStudio中运行时的Docker输出==========debug==========dockerps--filter"status=running"--filter"name=dockercompose607729401690719332_processfiles_"--format{{.ID}}-n11cad14cb758cstarthttps://localhost:44347/api/values...VisualStudio构建输出1>------构建构建:项目:docker-compose,配置:调试任何CPU-------1>dockerps--filter"status=running"--filter"name=dockercompose607729401690719332_processfiles_"--format{{.ID}}-n11>1cad14cb758c1>dockerexec-i1cad14cb758c/bin/bash-c"ifPID=$(pidof-xdotnet);thenkill$PID;fi"1>C:workStratsProcessFilesProcessFiles.csproj:警告NU1701:使用“.NETFramework,Version=v4.6.1”而不是项目目标框架“恢复包”System.Linq.Queryable4.0.1“。NETCoreApp,版本=V2.1'。此包可能与您的项目不完全兼容。1>ProcessFiles->C:workStratsProcessFilesbinDebugnetcoreapp2.1ProcessFiles.dll1>完成构建项目“ProcessFiles.csproj”。1>docker-compose-f"C:workStratsdocker-compose.yml"-f"C:workStratsdocker-compose.override.yml"-f"C:workStrats_objDockerdocker-compose.vs.debug.g.yml"-pdockercompose607729401690719332--no-ansiup-d1>未设置DOCKER_REGISTRY变量。默认为空字符串。1>dockercompose607729401690719332_processfiles_1是最新的==========构建:1个成功或最新,0个失败,0个跳过==========所以它运行并在浏览器api示例中显示默认值。现在,我右键单击该项目并在修复Dockerfile后单击“将容器发布到AWS...”(Windows版Docker为COPY添加了前缀`/var/lib/docker/tmp/`?)。但是,AWS消息框中的以下消息失败?检查Dockerfile以查看项目和docker映像是如何构建的...跳过构建项目,因为它是作为Dockerfile的一部分完成的执行dockerbuild...调用“dockerbuild”,工作文件夹“C:workStratsProcessFiles,dockerfileC:workStratsProcessFilesDockerfile,imagenameprocessfiles:latest'...dockerbuild:SendingbuildcontexttoDockerdaemon1.176MB...dockerbuild:Step1/17:FROMmicrosoft/dotnet:2.1-aspnetcore-运行时ASbase...dockerbuild:--->04aae08f15c5...dockerbuild:Step2/17:WORKDIR/app...dockerbuild:--->usingcache...dockerbuild:--->135955e04284...dockerbuild:步骤3/17:EXPOSE49971...dockerbuild:--->使用缓存...dockerbuild:--->2e1bb95e0d70...dockerbuild:步骤4/17:EXPOSE44347。..dockerbuild:--->使用缓存...dockerbuild:--->89dc3708552d...dockerbuild:步骤5/17:FROMmicrosoft/dotnet:2.1-sdkASbuild...dockerbuild:--->7c3e298d40ac...docker构建:步骤6/17:WORKDIR/src...docker构建:--->使用缓存...docker构建:--->6b6446592420...docker构建:步骤7/17:复制ProcessFiles.csprojProcessFiles/...dockerbuild:--->024a84501cff...dockerbuild:步骤8/17:运行dotnetrestoreProcessFiles/ProcessFiles.csproj...dockerbuild:--->在1ef41c99d3bc中运行...dockerbuild:恢复/src/ProcessFiles/ProcessFiles.csproj包......dockerbuild:生成MSBuild文件/src/ProcessFiles/obj/ProcessFiles.csproj.nuget.g.props...dockerbuild:生成MSBuild文件/src/ProcessFiles/obj/ProcessFiles.csproj.nuget.g.targets。...dockerbuild:/src/ProcessFiles/ProcessFiles.csproj的恢复在770.82毫秒内完成。...dockerbuild:删除中间容器1ef41c99d3bc...dockerbuild:--->276efaf02bd4...dockerbuild:步骤9/17:复制。....docker构建:--->128814476275...docker构建:步骤10/17:WORKDIR/src/ProcessFiles...docker构建:删除中间容器004eb873b480...docker构建:--->8c1741062d87...dockerbuild:步骤11/17:运行dotnetbuildProcessFiles.csproj-cRelease-o/app...dockerbuild:--->在fd25517b7941中运行...dockerbuild:Microsoftfor.NETCore(R)Build引擎版本15.7.179.6572...dockerbuild:版权所有(C)MicrosoftCorporation。版权所有。...dockerbuild:/src/ProcessFiles/ProcessFiles.csproj的恢复在55.9毫秒内完成。...dockerbuild:CSC:errorCS5001:Programdoesnotcontainastatic"Main"methodapplicabletotheentrypoint[/src/ProcessFiles/ProcessFiles.csproj]...dockerbuild:构建失败。...dockerbuild:CSC:errorCS5001:Programdoesnotcontainastatic"Main"methodapplicabletotheentrypoint[/src/ProcessFiles/ProcessFiles.csproj]...dockerbuild:0警告...dockerbuild:1个错误...docker构建:已用时间00:00:02.56...docker构建:命令'/bin/sh-cdotnetbuildProcessFiles.csproj-cRelease-o/app'返回非零代码:1正在执行“dockerbuild”尝试清除为失败部署创建的任何ELB资源时发生错误未知错误将容器发布到AWS这是VS创建的主要方法。namespaceProcessFiles{publicclassProgram{publicstaticvoidMain(string[]args){CreateWebHostBuilder(args).Build().Run();}publicstaticIWebHostBuilderCreateWebHostBuilder(string[]args)=>WebHost.CreateDefaultBuilder(args).UseStartup();}}DockerfileFROMmicrosoft/dotnet:2.1-aspnetcore-runtimeASbaseWORKDIR/appEXPOSE49971EXPOSE44347FROMmicrosoft/dotnet:2.1-sdkASbuildWORKDIR/srcCOPYProcessFiles.csprojProcessFiles/RUNdotnet/ProcessFiles.csprojCOPY。.WORKDIR/src/ProcessFilesRUNdotnetbuildProcessFiles.csproj-cRelease-o/appFROMbuildASpublishRUNdotnetpublishProcessFiles.csproj-cRelease-o/appFROMbase作为最终WORKDIR/appCOPY--from=publish/app.ENTRYPOINT["dotnet","ProcessFiles.dll"]构建阶段的路径不可靠。您的项目文件正在复制到子文件夹/src/ProcessFiles,但源文件正在复制到/src。在复制之前设置WORKDIR应该能让它们到达正确的位置。以上是C#学习教程:Docker在VS中运行但是发布到AWS时失败?错误CS5001:程序不包含适用于入口点的静态“main”方法共享的所有内容。如果对大家有用,需要进一步了解C#学习教程,希望大家多加关注—FROMmicrosoft/dotnet:2.1-sdkASbuildWORKDIR/srcCOPYProcessFiles.csprojProcessFiles/RUNdotnetrestoreProcessFiles/ProcessFiles.csprojWORKDIR/src/ProcessFiles复制。.RUNdotnetbuildProcessFiles.csproj-cRelease-o/app涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
