in tool/TeamCity.Docker/TeamCityKotlinSettingsGenerator.cs [555:585]
private static IEnumerable<string> CreateDockerRequirements(IReadOnlyCollection<Requirement> requirements, string platform = "", string minDockerVersion = "")
{
yield return "requirements {";
if (!string.IsNullOrWhiteSpace(minDockerVersion))
{
yield return $"\t noLessThanVer(\"docker.version\", \"{minDockerVersion}\")";
}
if (!string.IsNullOrWhiteSpace(platform))
{
yield return $"\t contains(\"docker.server.osType\", \"{platform}\")";
}
if (!IsArmBasedImageBuildEnabled) {
yield return "\t// In order to correctly build AMD-based images, we wouldn't want it to be scheduled on ARM-based agent";
yield return $"\tdoesNotContain(\"teamcity.agent.name\", \"arm\")";
}
foreach (var requirement in requirements)
{
if (string.IsNullOrWhiteSpace(requirement.Value))
{
yield return $"\t {requirement.Type.ToString().ToLowerInvariant()}(\"{requirement.Property}\")";
}
else
{
yield return $"\t {requirement.Type.ToString().ToLowerInvariant()}(\"{requirement.Property}\", \"{requirement.Value}\")";
}
}
yield return "}";
}