diff --git a/Dockerfile b/Dockerfile index d64d63093..f414c261c 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,7 +1,7 @@ # # Stage 1, Prebuild # -FROM squidex/aspnetcore-build-phantomjs-chromium:2.0.3-jessie-fix1 as builder +FROM squidex/dotnet:2.1-sdk-chromium-phantomjs-node as builder COPY src/Squidex/package.json /tmp/package.json diff --git a/Dockerfile.build b/Dockerfile.build index 4f7849adb..1474e9c8c 100644 --- a/Dockerfile.build +++ b/Dockerfile.build @@ -1,4 +1,4 @@ -FROM squidex/aspnetcore-build-phantomjs-chromium:2.0.3-jessie-fix1 as builder +FROM squidex/dotnet:2.1-sdk-chromium-phantomjs-node as builder COPY src/Squidex/package.json /tmp/package.json diff --git a/libs/Dockerfile b/libs/Dockerfile index d767e851d..389e519fa 100644 --- a/libs/Dockerfile +++ b/libs/Dockerfile @@ -23,6 +23,15 @@ RUN set -x \ && rm -rf /tmp/* /var/lib/apt/lists/* RUN phantomjs --version + +# Install Node +ENV NODE_VERSION 8.9.4 +ENV NODE_DOWNLOAD_SHA 21fb4690e349f82d708ae766def01d7fec1b085ce1f5ab30d9bda8ee126ca8fc +RUN curl -SL "https://nodejs.org/dist/v${NODE_VERSION}/node-v${NODE_VERSION}-linux-x64.tar.gz" --output nodejs.tar.gz \ + && echo "$NODE_DOWNLOAD_SHA nodejs.tar.gz" | sha256sum -c - \ + && tar -xzf "nodejs.tar.gz" -C /usr/local --strip-components=1 \ + && rm nodejs.tar.gz \ + && ln -s /usr/local/bin/node /usr/local/bin/nodejs # Install Google Chrome diff --git a/src/Squidex/Config/Orleans/ClientWrapper.cs b/src/Squidex/Config/Orleans/ClientWrapper.cs deleted file mode 100644 index d65c73e6e..000000000 --- a/src/Squidex/Config/Orleans/ClientWrapper.cs +++ /dev/null @@ -1,53 +0,0 @@ -// ========================================================================== -// Squidex Headless CMS -// ========================================================================== -// Copyright (c) Squidex UG (haftungsbeschraenkt) -// All rights reserved. Licensed under the MIT license. -// ========================================================================== - -using System; -using Orleans; -using Orleans.Configuration; -using Squidex.Config.Domain; -using Squidex.Infrastructure; - -namespace Squidex.Config.Orleans -{ - public sealed class ClientWrapper : DisposableObjectBase, IInitializable, IDisposable - { - public IClusterClient Client { get; } - - public ClientWrapper() - { - Client = new ClientBuilder() - .UseDashboard() - .UseLocalhostClustering(40000) - .Configure(options => - { - options.Configure(); - }) - .ConfigureServices((context, services) => - { - services.AddMySerializers(); - }) - .ConfigureApplicationParts(builder => - { - builder.AddMyParts(); - }) - .Build(); - } - - public void Initialize() - { - Client.Connect().Wait(); - } - - protected override void DisposeObject(bool disposing) - { - if (disposing) - { - Client.Close().Wait(); - } - } - } -} diff --git a/src/Squidex/Config/Orleans/OrleansServices.cs b/src/Squidex/Config/Orleans/OrleansServices.cs index 8fa4f34c0..a75936ad8 100644 --- a/src/Squidex/Config/Orleans/OrleansServices.cs +++ b/src/Squidex/Config/Orleans/OrleansServices.cs @@ -16,24 +16,18 @@ namespace Squidex.Config.Orleans public static void AddOrleansSilo(this IServiceCollection services) { services.AddSingletonAs() - .As(); - } + .As() + .AsSelf(); - public static void AddOrleansClient(this IServiceCollection services) - { services.AddServicesForSelfHostedDashboard(null, options => { options.HideTrace = true; }); - services.AddSingletonAs() - .As() - .AsSelf(); - - services.AddSingletonAs(c => c.GetRequiredService().Client) + services.AddSingletonAs(c => c.GetRequiredService().Client) .As(); - services.AddSingletonAs(c => c.GetRequiredService().Client) + services.AddSingletonAs(c => c.GetRequiredService().Client) .As(); } } diff --git a/src/Squidex/Config/Orleans/SiloWrapper.cs b/src/Squidex/Config/Orleans/SiloWrapper.cs index 839ff6312..62139bb06 100644 --- a/src/Squidex/Config/Orleans/SiloWrapper.cs +++ b/src/Squidex/Config/Orleans/SiloWrapper.cs @@ -46,6 +46,11 @@ namespace Squidex.Config.Orleans } } + public IClusterClient Client + { + get { return silo.Value.Services.GetRequiredService(); } + } + public SiloWrapper(IConfiguration config, ISemanticLog log) { this.log = log; @@ -54,6 +59,7 @@ namespace Squidex.Config.Orleans { var hostBuilder = new SiloHostBuilder() .UseDashboard(options => options.HostSelf = false) + .EnableDirectClient() .AddIncomingGrainCallFilter() .AddStartupTask>() .AddStartupTask>() diff --git a/src/Squidex/WebStartup.cs b/src/Squidex/WebStartup.cs index d4b3dd1a1..fbaec12fb 100644 --- a/src/Squidex/WebStartup.cs +++ b/src/Squidex/WebStartup.cs @@ -33,7 +33,6 @@ namespace Squidex public void ConfigureServices(IServiceCollection services) { services.AddOrleansSilo(); - services.AddOrleansClient(); services.AddAppServices(configuration); }