Browse Source

Dockerfiles updated.

pull/303/head
Sebastian 8 years ago
parent
commit
0b48703543
  1. 2
      Dockerfile
  2. 2
      Dockerfile.build
  3. 9
      libs/Dockerfile
  4. 53
      src/Squidex/Config/Orleans/ClientWrapper.cs
  5. 14
      src/Squidex/Config/Orleans/OrleansServices.cs
  6. 6
      src/Squidex/Config/Orleans/SiloWrapper.cs
  7. 1
      src/Squidex/WebStartup.cs

2
Dockerfile

@ -1,7 +1,7 @@
# #
# Stage 1, Prebuild # 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 COPY src/Squidex/package.json /tmp/package.json

2
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 COPY src/Squidex/package.json /tmp/package.json

9
libs/Dockerfile

@ -24,6 +24,15 @@ RUN set -x \
RUN phantomjs --version 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 # Install Google Chrome
# See https://crbug.com/795759 # See https://crbug.com/795759

53
src/Squidex/Config/Orleans/ClientWrapper.cs

@ -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<ClusterOptions>(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();
}
}
}
}

14
src/Squidex/Config/Orleans/OrleansServices.cs

@ -16,24 +16,18 @@ namespace Squidex.Config.Orleans
public static void AddOrleansSilo(this IServiceCollection services) public static void AddOrleansSilo(this IServiceCollection services)
{ {
services.AddSingletonAs<SiloWrapper>() services.AddSingletonAs<SiloWrapper>()
.As<IInitializable>(); .As<IInitializable>()
} .AsSelf();
public static void AddOrleansClient(this IServiceCollection services)
{
services.AddServicesForSelfHostedDashboard(null, options => services.AddServicesForSelfHostedDashboard(null, options =>
{ {
options.HideTrace = true; options.HideTrace = true;
}); });
services.AddSingletonAs<ClientWrapper>() services.AddSingletonAs(c => c.GetRequiredService<SiloWrapper>().Client)
.As<IInitializable>()
.AsSelf();
services.AddSingletonAs(c => c.GetRequiredService<ClientWrapper>().Client)
.As<IClusterClient>(); .As<IClusterClient>();
services.AddSingletonAs(c => c.GetRequiredService<ClientWrapper>().Client) services.AddSingletonAs(c => c.GetRequiredService<SiloWrapper>().Client)
.As<IGrainFactory>(); .As<IGrainFactory>();
} }
} }

6
src/Squidex/Config/Orleans/SiloWrapper.cs

@ -46,6 +46,11 @@ namespace Squidex.Config.Orleans
} }
} }
public IClusterClient Client
{
get { return silo.Value.Services.GetRequiredService<IClusterClient>(); }
}
public SiloWrapper(IConfiguration config, ISemanticLog log) public SiloWrapper(IConfiguration config, ISemanticLog log)
{ {
this.log = log; this.log = log;
@ -54,6 +59,7 @@ namespace Squidex.Config.Orleans
{ {
var hostBuilder = new SiloHostBuilder() var hostBuilder = new SiloHostBuilder()
.UseDashboard(options => options.HostSelf = false) .UseDashboard(options => options.HostSelf = false)
.EnableDirectClient()
.AddIncomingGrainCallFilter<LocalCacheFilter>() .AddIncomingGrainCallFilter<LocalCacheFilter>()
.AddStartupTask<Bootstrap<IContentSchedulerGrain>>() .AddStartupTask<Bootstrap<IContentSchedulerGrain>>()
.AddStartupTask<Bootstrap<IEventConsumerManagerGrain>>() .AddStartupTask<Bootstrap<IEventConsumerManagerGrain>>()

1
src/Squidex/WebStartup.cs

@ -33,7 +33,6 @@ namespace Squidex
public void ConfigureServices(IServiceCollection services) public void ConfigureServices(IServiceCollection services)
{ {
services.AddOrleansSilo(); services.AddOrleansSilo();
services.AddOrleansClient();
services.AddAppServices(configuration); services.AddAppServices(configuration);
} }

Loading…
Cancel
Save