diff --git a/Dockerfile b/Dockerfile index cde0085b0..d64d63093 100644 --- a/Dockerfile +++ b/Dockerfile @@ -33,7 +33,7 @@ RUN dotnet publish src/Squidex/Squidex.csproj --output /out/ --configuration Rel # # Stage 2, Build runtime # -FROM microsoft/aspnetcore:2.0.3-jessie +FROM microsoft/dotnet:2.1.0-aspnetcore-runtime # Default AspNetCore directory WORKDIR /app diff --git a/libs/Dockerfile b/libs/Dockerfile index e6155a35d..d767e851d 100644 --- a/libs/Dockerfile +++ b/libs/Dockerfile @@ -1,4 +1,4 @@ -FROM microsoft/aspnetcore-build:2.0.3-jessie +FROM microsoft/dotnet:2.1-sdk # Install runtime dependencies RUN apt-get update \ diff --git a/src/Squidex.Infrastructure/Assets/ImageSharp/ImageSharpAssetThumbnailGenerator.cs b/src/Squidex.Infrastructure/Assets/ImageSharp/ImageSharpAssetThumbnailGenerator.cs index 7d8566dbb..cb28e94e7 100644 --- a/src/Squidex.Infrastructure/Assets/ImageSharp/ImageSharpAssetThumbnailGenerator.cs +++ b/src/Squidex.Infrastructure/Assets/ImageSharp/ImageSharpAssetThumbnailGenerator.cs @@ -10,6 +10,7 @@ using System.IO; using System.Threading.Tasks; using SixLabors.ImageSharp; using SixLabors.ImageSharp.Processing; +using SixLabors.ImageSharp.Processing.Transforms; using SixLabors.Primitives; namespace Squidex.Infrastructure.Assets.ImageSharp @@ -18,8 +19,8 @@ namespace Squidex.Infrastructure.Assets.ImageSharp { public ImageSharpAssetThumbnailGenerator() { - Configuration.Default.AddImageFormat(ImageFormats.Jpeg); - Configuration.Default.AddImageFormat(ImageFormats.Png); + Configuration.Default.ImageFormatsManager.AddImageFormat(ImageFormats.Jpeg); + Configuration.Default.ImageFormatsManager.AddImageFormat(ImageFormats.Png); } public Task CreateThumbnailAsync(Stream source, Stream destination, int? width, int? height, string mode) diff --git a/src/Squidex.Infrastructure/Log/Adapter/SemanticLogLoggerProvider.cs b/src/Squidex.Infrastructure/Log/Adapter/SemanticLogLoggerProvider.cs index 625843066..153ebc464 100644 --- a/src/Squidex.Infrastructure/Log/Adapter/SemanticLogLoggerProvider.cs +++ b/src/Squidex.Infrastructure/Log/Adapter/SemanticLogLoggerProvider.cs @@ -5,24 +5,42 @@ // All rights reserved. Licensed under the MIT license. // ========================================================================== +using System; using Microsoft.Extensions.Logging; +using Microsoft.Extensions.Logging.Abstractions; namespace Squidex.Infrastructure.Log.Adapter { public class SemanticLogLoggerProvider : ILoggerProvider { - private readonly ISemanticLog semanticLog; + private readonly IServiceProvider services; + private ISemanticLog log; - public SemanticLogLoggerProvider(ISemanticLog semanticLog) + public SemanticLogLoggerProvider(IServiceProvider services) { - Guard.NotNull(semanticLog, nameof(semanticLog)); + Guard.NotNull(services, nameof(services)); - this.semanticLog = semanticLog; + this.services = services; + } + + internal SemanticLogLoggerProvider(ISemanticLog log) + { + this.log = log; } public ILogger CreateLogger(string categoryName) { - return new SemanticLogLogger(semanticLog.CreateScope(writer => + if (log == null) + { + log = services.GetService(typeof(ISemanticLog)) as ISemanticLog; + } + + if (log == null) + { + return NullLogger.Instance; + } + + return new SemanticLogLogger(log.CreateScope(writer => { writer.WriteProperty("category", categoryName); })); diff --git a/src/Squidex.Infrastructure/Squidex.Infrastructure.csproj b/src/Squidex.Infrastructure/Squidex.Infrastructure.csproj index f2094120d..068ac6153 100644 --- a/src/Squidex.Infrastructure/Squidex.Infrastructure.csproj +++ b/src/Squidex.Infrastructure/Squidex.Infrastructure.csproj @@ -16,7 +16,7 @@ - + diff --git a/src/Squidex/Dockerfile b/src/Squidex/Dockerfile index 5c6e0b1a6..e98d47290 100644 --- a/src/Squidex/Dockerfile +++ b/src/Squidex/Dockerfile @@ -1,4 +1,4 @@ -FROM microsoft/aspnetcore:2.0.3-jessie +FROM microsoft/dotnet:2.1.0-aspnetcore-runtime WORKDIR /app diff --git a/src/Squidex/Program.cs b/src/Squidex/Program.cs index 48812e334..e3e20d220 100644 --- a/src/Squidex/Program.cs +++ b/src/Squidex/Program.cs @@ -6,6 +6,7 @@ // ========================================================================== using System.IO; +using Microsoft.AspNetCore; using Microsoft.AspNetCore.Hosting; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.Logging; @@ -20,6 +21,10 @@ namespace Squidex { public static void Main(string[] args) { + BuildWebHost(args).Run(); + } + + public static IWebHost BuildWebHost(string[] args) => new WebHostBuilder() .UseKestrel(k => { k.AddServerHeader = false; }) .UseContentRoot(Directory.GetCurrentDirectory()) @@ -42,8 +47,6 @@ namespace Squidex builder.AddCommandLine(args); }) - .Build() - .Run(); - } + .Build(); } } diff --git a/src/Squidex/WebStartup.cs b/src/Squidex/WebStartup.cs index 3e6baa3e3..d4b3dd1a1 100644 --- a/src/Squidex/WebStartup.cs +++ b/src/Squidex/WebStartup.cs @@ -21,7 +21,7 @@ using Squidex.Config.Web; namespace Squidex { - public sealed class WebStartup : IStartup + public sealed class WebStartup { private readonly IConfiguration configuration; @@ -30,13 +30,11 @@ namespace Squidex this.configuration = configuration; } - public IServiceProvider ConfigureServices(IServiceCollection services) + public void ConfigureServices(IServiceCollection services) { services.AddOrleansSilo(); services.AddOrleansClient(); services.AddAppServices(configuration); - - return services.BuildServiceProvider(); } public void Configure(IApplicationBuilder app)