我试图在docker容器中运行.net核心1.0.0控制台应用程序.
当我dotnet run从我的机器上的Demo文件夹中运行命令时,它工作正常; 但是当使用时docker run -d --name demo Demo,容器会立即退出.
我试图docker logs demo检查日志,它只显示Console.WriteLine中的文本:
演示应用运行...
没有别的.
我已经在https://github.com/learningdockerandnetcore/Demo上传了该项目
该项目包含Programs.cs,Dockerfile用于创建Demo图像和project.json文件.
我使用Link提供的示例在C#中创建了一个GRPC服务器.现在我想弄清楚我应该如何托管这个服务器,以便我实现以下目标:
欢迎任何有关更好架构的参考资料.
我有一个默认的通用主机构建器,如下所示:
public static IHostBuilder CreateDefaultBuilder(string[] args)
{
var builder = Host.CreateDefaultBuilder(args);
builder
.ConfigureLogging((hostingContext, logging) =>
{
logging.ClearProviders();
logging.AddConsole();
if (hostingContext.HostingEnvironment.IsDevelopment() == true)
logging.AddDebug();
})
.ConfigureHostConfiguration(configurationBuilder =>
{
configurationBuilder.AddCommandLine(args);
})
.ConfigureAppConfiguration((hostingContext, configApp) =>
{
var env = hostingContext.HostingEnvironment;
Console.WriteLine(env.EnvironmentName);
})
.UseConsoleLifetime();
return builder;
}
public static async Task Main(string[] args)
{
var host = CreateDefaultBuilder(args)
.ConfigureServices((hostContext, services) =>
{
services.Configure<HostOptions>(option =>
{
option.ShutdownTimeout = System.TimeSpan.FromSeconds(20);
});
services.AddLogging();
services.AddSimpleInjector(container, options =>
{
// Hooks hosted services into the Generic Host pipeline while …Run Code Online (Sandbox Code Playgroud)