spbgovbr / Sistema_Programa_de_Gestao_Susep

34 stars 48 forks source link

Impossibilidade de subir Susep.SISRH.WebApi em ambientes docker Linux #4

Open SrMouraSilva opened 3 years ago

SrMouraSilva commented 3 years ago

Caros, estou tentando configurar o WebApi em um ambiente Linux, especificamente contairizado em Docker. A motivação é a simplificação da geração de um ambiente de homologação e testes da ferramenta. Isso ajudaria a todas as instâncias federais que irão analisar essa ferramenta, fornecendo um meio de subir um ambiente de homologação sem envolver quaisquer custo de licitação.

Especificamente no WebApi, me esbarrei no seguinte problema: A biblioteca Autofac que provavelmente vocês usam utiliza alguma coisa (EventLog?) que não possui suporte no Linux, como pode ser visto abaixo.

Gostaria de perguntar se vocês conseguiriam gerar algum build desabilitando o uso do EventLog?

web-api_1  | Unhandled exception. System.PlatformNotSupportedException: EventLog access is not supported on this platform.
web-api_1  |    at System.Diagnostics.EventLog..ctor(String logName, String machineName, String source)
web-api_1  |    at Microsoft.Extensions.Logging.EventLog.EventLogSettings.CreateDefaultEventLog()
web-api_1  |    at Microsoft.Extensions.Logging.EventLog.EventLogSettings.get_EventLog()
web-api_1  |    at Microsoft.Extensions.Logging.EventLog.EventLogLoggerProvider.Dispose()
web-api_1  |    at Autofac.Core.Disposer.Dispose(Boolean disposing)
web-api_1  |    at Autofac.Util.Disposable.Dispose()
web-api_1  |    at Autofac.Core.Lifetime.LifetimeScope.Dispose(Boolean disposing)
web-api_1  |    at Autofac.Util.Disposable.Dispose()
web-api_1  |    at Autofac.Core.Container.Dispose(Boolean disposing)
web-api_1  |    at Autofac.Util.Disposable.Dispose()
web-api_1  |    at Autofac.Extensions.DependencyInjection.AutofacServiceProvider.Dispose(Boolean disposing)
web-api_1  |    at Autofac.Extensions.DependencyInjection.AutofacServiceProvider.Dispose()
web-api_1  |    at Microsoft.AspNetCore.Hosting.WebHost.DisposeServiceProviderAsync(IServiceProvider serviceProvider)
web-api_1  |    at Microsoft.AspNetCore.Hosting.WebHost.DisposeAsync()
web-api_1  |    at Microsoft.AspNetCore.Hosting.WebHost.Dispose()
web-api_1  |    at Microsoft.AspNetCore.Hosting.WebHostBuilder.Build()
web-api_1  |    at Susep.SISRH.WebApi.Program.Main(String[] args) in C:\AGENTETFSSET2020\_work\9\s\Susep.SISRH\Susep.SISRH.WebApi\Program.cs:line 19
sistema_programa_de_gestao_susep_web-api_1 exited with code 139

Algumas considerações

SrMouraSilva commented 3 years ago

Ok, agora com o código fonte eu pude avançar nesse ponto.

Caso alguém tenha interesse: https://github.com/SrMouraSilva/Sistema_Programa_de_Gestao_Susep/tree/docker-codigo-fonte#sistema-programa-de-gest%C3%A3o-de-desempenho---pgd