Example #1
0
        public override async Task RecordMetadata()
        {
            var obj = new JObject();

            foreach (var(key, value) in metadataCache)
            {
                obj[key] = await value;
            }

            await ArchiveUtil.AddStringToTar(tarStream, TransientMetadataPath, JsonConvert.SerializeObject(obj));
        }
        public static async Task WriteBuildContext(string directory, string dockerfileContent, Stream stream)
        {
            await using var tarStream = new TarOutputStream(stream);

            var dockerIgnorePath = Path.Combine(directory, ".dockerignore");
            Func <string, bool> filter;

            if (File.Exists(dockerIgnorePath))
            {
                using var ignoreReader = File.OpenText(dockerIgnorePath);
                filter = await CreateIgnorePredicate(ignoreReader);
            }
            else
            {
                filter = _ => true;
            }

            await ArchiveUtil.AddStringToTar(tarStream, "Dockerfile", dockerfileContent);

            filter = ExcludeDockerfile(filter);

            await ArchiveUtil.AddDirToTar(tarStream, "", directory, filter);
        }