Exemplo n.º 1
0
        private async Task PullImage(CancellationToken ct)
        {
            _logger.LogInformation("Pulling container image: {}", ImageName);
            var tagSplitIdx      = ImageName.LastIndexOf(":", StringComparison.InvariantCultureIgnoreCase);
            var createParameters = new ImagesCreateParameters
            {
                FromImage = ImageName.Substring(0, tagSplitIdx), Tag = ImageName.Substring(tagSplitIdx + 1),
            };

            await DockerClient.Images.CreateImageAsync(
                createParameters,
                new AuthConfig(),
                new Progress <JSONMessage>(m =>
            {
                _logger.LogTrace("[{}] {}", m.Status, m.ProgressMessage);
            }),
                ct);

            // we should not catch exceptions thrown by inspect because the image is
            // expected to be available since we've just pulled it
            var image = await DockerClient.Images.InspectImageAsync(ImageName, ct);

            ImageId = image.ID;
        }