in plugins/docker/base-image/src/main/java/co/elastic/gradle/dockerbase/DockerBaseImageBuildPlugin.java [295:326]
protected static void addPackageAsDependency(Project target, BaseImageExtension extension, Map.Entry<Architecture, Configuration> packageConfiguration, UnchangingPackage pkg) {
final String type = extension.getOSDistribution().get()
.name().toLowerCase(Locale.ROOT);
final Map<String, String> dependencyNotation = Map.of(
"group", type + (
extension.getOSDistribution().get().equals(OSDistribution.WOLFI) ?
"/" + packageConfiguration.getKey().toString().toLowerCase(Locale.ROOT) :
""
),
"name", pkg.name(),
// Gradle has trouble dealing with : in the version, so we rename the
// packages to have . instead and use the same here
"version", switch (extension.getOSDistribution().get()) {
case DEBIAN, UBUNTU -> pkg.version().replace(":", ".") +
"-" + pkg.architecture();
case CENTOS -> pkg.version() + "-" +
pkg.release() + "." +
pkg.architecture();
case WOLFI -> pkg.version();
},
"ext", switch (extension.getOSDistribution().get()) {
case DEBIAN, UBUNTU -> pkg.name().startsWith("__META__") ? "gz" : "deb";
case CENTOS -> pkg.name().startsWith("__META__") ? "tar" : "rpm";
case WOLFI -> pkg.name().startsWith("__META__") ? "gz" : "apk";
}
);
target.getDependencies().add(
packageConfiguration.getValue().getName(),
dependencyNotation
);
}