in tool/TeamCity.Docker/TeamCityKotlinSettingsGenerator.cs [587:634]
private IEnumerable<string> CreateManifestCommands(string repositoryName, string tag, string imageId, string imagePostfix, IEnumerable<Image> images)
{
if (string.IsNullOrWhiteSpace(tag) || !char.IsLetterOrDigit(tag[0]))
{
yield break;
}
var repo = $"{repositoryName}{imageId}{imagePostfix}";
var manifestName = $"{repo}:{tag}";
var createArgs = new List<string>
{
"create",
manifestName
};
foreach (var image in images)
{
createArgs.Add($"{repo}:{image.File.Tags.First()}");
}
foreach (var line in CreateDockerCommand($"manifest create {imageId}:{tag}", "manifest", createArgs))
{
yield return line;
}
var pushArgs = new List<string>
{
"push",
manifestName
};
foreach (var line in CreateDockerCommand($"manifest push {imageId}:{tag}", "manifest", pushArgs))
{
yield return line;
}
var inspectArgs = new List<string>
{
"inspect",
manifestName,
"--verbose"
};
foreach (var line in CreateDockerCommand($"manifest inspect {imageId}:{tag}", "manifest", inspectArgs))
{
yield return line;
}
}