in plugins/docker/base-image/src/integrationTest/java/co/elastic/gradle/dockerbase/DockerBaseImageMatrix.java [103:176]
private void writeSimpleBuildScript(GradleTestkitHelper helper, String baseImages) {
final String[] from = baseImages.split(":");
assertEquals(2, from.length);
final String fromType;
if (baseImages.contains("chainguard")) {
fromType = "Wolfi";
} else {
fromType = from[0].substring(0, 1).toUpperCase() + from[0].substring(1);
}
helper.buildScript(String.format("""
import java.net.URL
plugins {
id("base")
id("co.elastic.docker-base")
id("co.elastic.cli.jfrog")
id("co.elastic.vault")
}
vault {
address.set("https://vault-ci-prod.elastic.dev")
auth {
ghTokenFile()
ghTokenEnv()
tokenEnv()
roleAndSecretEnv()
}
}
val creds = vault.readAndCacheSecret("secret/ci/elastic-gradle-plugins/artifactory_creds").get()
cli {
jfrog {
username.set(creds["username"])
password.set(creds["plaintext"])
}
}
dockerBaseImage {
dockerTagLocalPrefix.set("gradle-test-local")
osPackageRepository.set(URL("https://${creds["username"]}:${creds["plaintext"]}@artifactory.elastic.dev/artifactory/gradle-plugins-os-packages"))
from%s("%s", "%s")
install("patch")
copySpec("1234:1234") {
from(fileTree("image_content")) {
into("home/foobar")
}
}
copySpec() {
from(projectDir) {
include("build.gradle.kts")
}
into("home/foobar")
}
healthcheck("/home/foobar/foo.txt")
env("MYVAR_PROJECT" to project.name)
createUser("foobar", 1234, "foobar", 1234)
run(
"ls -Ral /home",
"echo \\"This plugin rocks on $architecture and ephemeral files are available at $dockerEphemeral!\\" > /home/foobar/bar.txt"
)
run(listOf(
"touch /home/foobar/run.listOf.1",
"touch /home/foobar/run.listOf.2",
"chmod -R 777 /home"
))
setUser("foobar")
install("patch", "sudo", "bash")
if ("%s" == "centos") {
install("which")
}
run(
"whoami > /home/foobar/whoami",
)
}
""", fromType, from[0], from[1], from[0])
);
}