Esempio n. 1
0
 public CreatePodParameters(
     IList <string> env,
     IDictionary <string, global::Docker.DotNet.Models.EmptyStruct> exposedPorts,
     HostConfig hostConfig,
     string image,
     IDictionary <string, string> labels,
     NetworkingConfig networkingConfig)
     : this(env, exposedPorts, hostConfig, image, labels, networkingConfig, null, null)
 {
 }
 static CreatePodParameters CreateOptions(
     IList <string> env = null,
     IDictionary <string, EmptyStruct> exposedPorts = null,
     HostConfig hostConfig = null,
     string image          = null,
     IDictionary <string, string> labels       = null,
     NetworkingConfig networkingConfig         = null,
     IDictionary <string, string> nodeSelector = null)
 => new CreatePodParameters(env, exposedPorts, hostConfig, image, labels, networkingConfig)
 {
     NodeSelector = Option.Maybe(nodeSelector)
 };
Esempio n. 3
0
        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            NetworkingConfig networkingConfig = this.Configuration.GetSection("Networking").Get <NetworkingConfig>();

            services.Configure <ForwardedHeadersOptions>(options =>
            {
                options.ForwardLimit = networkingConfig.UpstreamProxyHops;

                if (networkingConfig.KnownProxyServers?.Count > 0)
                {
                    foreach (string ip in networkingConfig.KnownProxyServers)
                    {
                        options.KnownProxies.Add(IPAddress.Parse(ip));
                    }
                }
            });

            string    redisConString = this.Configuration.GetValue <string>("RedisConnectionString");
            AesConfig aesSettings    = this.Configuration.GetSection("AesSettings").Get <AesConfig>();

            services.AddSingleton <IConnectionMultiplexer>(_ =>
                                                           ConnectionMultiplexer.Connect(redisConString));

            services.AddTransient <IDatabase>(sp => sp
                                              .GetRequiredService <IConnectionMultiplexer>()
                                              .GetDatabase(0));
            services.AddTransient <IClock>(s => SystemClock.Instance);
            services.AddTransient <ICryptoService, CryptoService>();

            services.AddTransient <IAesEncryptionService>(s => new AesEncryptionService(aesSettings.MasterKey, aesSettings.Version));

            services
            .AddMvc()
            .AddJsonOptions(options =>
            {
                options.JsonSerializerOptions.IgnoreNullValues     = true;
                options.JsonSerializerOptions.PropertyNamingPolicy = JsonNamingPolicy.CamelCase;

                // TODO: figure out NodaTime in 3.0
            });

            services
            .AddHealthChecks()
            .AddCheck <VersionHealthCheck>("version_health_check")
            .AddCheck <RedisHealthCheck>("redis_health_check");
        }
Esempio n. 4
0
 CreatePodParameters(
     IList <string> env,
     IDictionary <string, global::Docker.DotNet.Models.EmptyStruct> exposedPorts,
     HostConfig hostConfig,
     string image,
     IDictionary <string, string> labels,
     NetworkingConfig networkingConfig,
     IDictionary <string, string> nodeSelector,
     V1ResourceRequirements resources)
 {
     this.Env              = Option.Maybe(env);
     this.ExposedPorts     = Option.Maybe(exposedPorts);
     this.HostConfig       = Option.Maybe(hostConfig);
     this.Image            = Option.Maybe(image);
     this.Labels           = Option.Maybe(labels);
     this.NetworkingConfig = Option.Maybe(networkingConfig);
     this.NodeSelector     = Option.Maybe(nodeSelector);
     this.Resources        = Option.Maybe(resources);
 }
Esempio n. 5
0
    // Use this for initialization
    void Start()
    {
        print("Setting ttrget fps");
        if (UnityEngine.SystemInfo.graphicsDeviceType == UnityEngine.Rendering.GraphicsDeviceType.Null)
        {
            QualitySettings.vSyncCount  = 0;
            Application.targetFrameRate = 30;
        }
        NetworkingConfig cfg = new NetworkingConfig();

        cfg.isServer         = false;
        cfg.isMatchmaker     = false;
        cfg.simulatedLatency = 100;

        LobbyConnector.Init(cfg);

        NetworkEvents.onLobbyJoined     += OnLobbyJoined;
        NetworkEvents.onDisconnect      += OnLobbyDisconnected;
        NetworkEvents.onPlayerConnected += OnPlayerConnected;
    }
Esempio n. 6
0
        public async Task <string> RunAsync(ITestcontainersConfiguration configuration, CancellationToken ct = default)
        {
            var converter = new TestcontainersConfigurationConverter(configuration);

            var hostConfig = new HostConfig
            {
                AutoRemove   = configuration.AutoRemove.HasValue && configuration.AutoRemove.Value,
                Privileged   = configuration.Privileged.HasValue && configuration.Privileged.Value,
                PortBindings = converter.PortBindings,
                Mounts       = converter.Mounts,
            };

            var networkingConfig = new NetworkingConfig
            {
                EndpointsConfig = converter.Networks,
            };

            var createParameters = new CreateContainerParameters
            {
                Image            = configuration.Image.FullName,
                Name             = configuration.Name,
                Hostname         = configuration.Hostname,
                WorkingDir       = configuration.WorkingDirectory,
                Entrypoint       = converter.Entrypoint,
                Cmd              = converter.Command,
                Env              = converter.Environments,
                Labels           = converter.Labels,
                ExposedPorts     = converter.ExposedPorts,
                HostConfig       = hostConfig,
                NetworkingConfig = networkingConfig,
            };

            var id = (await this.Docker.Containers.CreateContainerAsync(createParameters, ct)
                      .ConfigureAwait(false)).ID;

            this.logger.DockerContainerCreated(id);

            return(id);
        }
Esempio n. 7
0
        public async void RunAsync(Guid dadosCampanhaCampanhaId, string servico)
        {
            var client = new DockerClientConfiguration(new Uri("tcp://docker.for.win.localhost:2375"))
                         .CreateClient();

            if (Environment.OSVersion.ToString().Contains("Windows"))
            {
                var argumento =
                    string.Format(
                        "docker run {0} --alias={1}  --network={2} --links={3}:{0} -e CAMPANHA={1} -v tcp://docker.for.win.localhost:2375:/var/run/docker.sock {0}",
                        servico, dadosCampanhaCampanhaId, "dotnetcorerabbitmq_net.workflow", "mssql.workflow");
                Process.Start("cmd.exe", "/c " + argumento);
            }
            else
            {
                var parameters = new Config
                {
                    Image        = servico,
                    ArgsEscaped  = true,
                    AttachStderr = true,
                    AttachStdin  = false,
                    AttachStdout = true,
                    OpenStdin    = false,
                    StdinOnce    = false,
                    Env          = new[]
                    {
                        "CAMPANHA=" + dadosCampanhaCampanhaId + ""
                    },
                    Labels = new Dictionary <string, string>
                    {
                        { "Links", "mssql.workflow:nyom.workflow.manager" }
                    },
                    Cmd = new[]
                    {
                        string.Format(
                            "--name {0} --net={1} -links={2}:{0}",
                            servico, "dotnetcorerabbitmq_net.workflow", "mssql.workflow"),
                        "bash"
                    }
                };

                var net = new NetworkingConfig
                {
                    EndpointsConfig = new Dictionary <string, EndpointSettings>
                    {
                        {
                            "dotnetcorerabbitmq_net.workflow", new EndpointSettings
                            {
                                Links = new List <string>
                                {
                                    "mssql.workflow:nyom.workflow.manager"
                                }
                            }
                        }
                    }
                };

                var response =
                    await client.Containers.CreateContainerAsync(
                        new CreateContainerParameters(parameters) { Name = servico, NetworkingConfig = net });

                Task task   = client.Containers.StartContainerAsync(response.ID, new ContainerStartParameters());
                var  config = new ContainerAttachParameters
                {
                    Stream = true,
                    Stderr = false,
                    Stdin  = true,
                    Stdout = true
                };

                var buffer = new byte[1024];
                using (var stream =
                           await client.Containers.AttachContainerAsync(response.ID, false, config))
                {
                    using (var fileStream = File.Create($"{DateTime.Now.Ticks}.jpg"))
                    {
                        await stream.CopyOutputToAsync(null, fileStream, null, default(CancellationToken));
                    }
                }
            }
        }