Пример #1
0
        public async Task TestSteps_ForBuildToDockerRegistryAsync()
        {
            Stopwatch    s      = Stopwatch.StartNew();
            FibContainer image1 =
                await BuildRegistryImageAsync(
                    ImageReference.Of("gcr.io", "distroless/java", DISTROLESS_DIGEST),
                    ImageReference.Of("localhost:5000", "testimage", "testtag"),
                    new List <string>()).ConfigureAwait(false);

            progressChecker.CheckCompletion();

            logger.Info("Initial build time: " + s.Elapsed);
            s.Restart();
            FibContainer image2 =
                await BuildRegistryImageAsync(
                    ImageReference.Of("gcr.io", "distroless/java", DISTROLESS_DIGEST),
                    ImageReference.Of("localhost:5000", "testimage", "testtag"),
                    new List <string>()).ConfigureAwait(false);

            logger.Info("Secondary build time: " + s.Elapsed);

            Assert.AreEqual(image1, image2);

            const string imageReference = "localhost:5000/testimage:testtag";

            localRegistry.Pull(imageReference);
            AssertDockerInspect(imageReference);
            AssertLayerSizer(7, imageReference);
            Assert.AreEqual(
                "Hello, world. An argument.\n", new Command("docker", "run", "--rm", imageReference).Run());

            string imageReferenceByDigest = "localhost:5000/testimage@" + image1.GetDigest();

            localRegistry.Pull(imageReferenceByDigest);
            AssertDockerInspect(imageReferenceByDigest);
            Assert.AreEqual(
                "Hello, world. An argument.\n",
                new Command("docker", "run", "--rm", imageReferenceByDigest).Run());
        }