-
Notifications
You must be signed in to change notification settings - Fork 676
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add gradle-oci to implementations.md #1156
base: main
Are you sure you want to change the base?
Conversation
Signed-off-by: Silvio Giebl <[email protected]>
Hi @SgtSilvio, I'm not a Java / Gradle / Kotlin dev, so this is out of my expertise. But that's not really needed to approve this. Do you have an example image created by this project on a public repo that we could review? |
Thanks for your answer.
Full Image Definitionoci {
imageDefinitions.register("main") {
allPlatforms {
parentImages {
add("distroless:java11-debian11:latest") { isChanging = true }
}
config {
entryPoint.add("java")
entryPoint.addAll(application.applicationDefaultJvmArgs)
entryPoint.addAll(
"-XX:+UnlockExperimentalVMOptions",
"-XX:+UseG1GC",
"-XX:InitialRAMPercentage=60",
"-XX:MaxRAMPercentage=70",
"-XX:MinRAMPercentage=40",
"-Dswarm.home=/",
"-cp",
"/app/classpath/*:/app/libs/*",
)
entryPoint.add(application.mainClass)
environment.put("LOG_LEVEL", "INFO")
}
layers {
layer("libs") {
contents {
from(configurations.runtimeClasspath)
into("app/libs")
}
}
layer("jar") {
contents {
from(proguardJar.flatMap { it.inputOutputGroups[0].outputs[0].archiveFile })
into("app/classpath")
rename(".*", "${project.name}-${project.version}.jar")
}
}
layer("resources") {
contents {
from("src/distribution")
from("src/main/resources/logback.xml") { into("config") }
from(standardExtensions) { into("extensions") }
filter.exclude("config/config.xml", "scenario/scenario.xml", "**/Readme.md")
}
}
}
}
specificPlatform(platform("linux", "amd64"))
specificPlatform(platform("linux", "arm64", "v8"))
}
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
In addition to hivemq-swarm, the Gradle OCI plugin is now used in more places, for example: |
What is missing to get this merged? |
It's waiting on a second review from @opencontainers/image-spec-maintainers |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good to me, but I'm not the maintainer :)
Sorry, I should've commented earlier. 🙇 My hesitation is that it's a relatively new project, and despite that it might be interesting/useful, I'd like to avoid becoming a list of every individual "hobby"/"weekend" project, since that will get quite unwieldy and hard to maintain/prune over time -- along that vein, we've probably already got a few projects on here we ought to consider removing. 🙈 Are there any other projects (besides your own ❤️) using this today? |
Thanks for your responses.
Strictly speaking, the projects that I linked are not my own. They are projects of a company that I work for. Sure, I influenced these projects to use the Gradle OCI plugin. Apart from the above, I do not only maintain this project, but also move it forward. Don't expect it to be abandoned soon. |
This is one of those places where @tianon and I respectfully disagree. My own criteria is whether the spec is implemented by the project, and the project is updated for new versions of the spec when appropriate. Projects that are unmaintained could be moved to a historical list if we wanted to track maintenance, though that requires specifying criteria for maintenance. I have a strong aversion to exclusivity in the spec that would keep out new projects. As a potential consumer of various OCI implementations, it's nice to have lots of options listed in one place. Often I may be searching for a solution that isn't quite provided by the major implementations, but is being provided by a new project that is looking for more users. Without discovering those alternatives, I'm more likely to create a new project of my own rather than collaborate with others. |
All fair arguments! I don't feel strongly enough to block this. 👍🙇❤️ |
As the author of the Gradle OCI plugin I want to ask if it can be included in the list of implementations.
It is a Gradle plugin to ease using and producing (multi-arch) OCI images without requiring external tools.
The plugin allows:
Please let me know if any additional information is required.