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); }