public async Task Create()

in tool/TeamCity.Docker/DockerClientFactory.cs [47:84]


        public async Task<IDockerClient> Create()
        {
            DockerClient client = null;
            var connected = false;
            using (_logger.CreateBlock("Connect"))
            {
                var errors = new List<Exception>();
                var endpoints = _endpoints.ToList();
                foreach (var endpoint in endpoints)
                {
                    try
                    {
                        client = new DockerClientConfiguration(endpoint).CreateClient();
                        _logger.Log($"Connecting to \"{endpoint}\".");
                        var info = await client.System.GetSystemInfoAsync(CancellationToken.None);
                        _logger.Log($"Connected to \"{info.Name}\" {info.OSType} {info.Architecture}.");
                        connected = true;
                        break;
                    }
                    catch (Exception ex)
                    {
                        errors.Add(ex);
                    }
                }

                if (client == null || !connected)
                {
                    foreach (var error in errors)
                    {
                        _logger.Log(error, _options.VerboseMode);
                    }

                    throw new InvalidOperationException("The docker engine connection error.");
                }
            }

            return client;
        }