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)