/ocj

Primary LanguageJavaApache License 2.0Apache-2.0

Open Container Initiative for Java

This is a proof of concept for Java tools and libraries implementing specifications from Open Container Initiative.

Background

The trend for rootless containers lead to where we are now and where three tools are used to manage containers and images:

These tools use libraries from https://github.com/containers organization:

These libraries (together) implement the following specification from OCI:

Kubernetes provides CRI API specification for a kubelet to communicate with actual container runtime and by itself, Kubernetes provides CRI-O implementation of CRI specification.

Java landspace (as far as I checked recently)

Focusing on Maven plugins, we have:

These tools rely on Docker daemon (which may be replaced by podman system service).

Goal

It’s not even a goal now, just an idea - can we have libraries that can be used for rootless container/image management in pure Java™?

Can we emulate podman, buildah and skopeo functionality in Java?

Can we talk to CRI-O daemon from Java?

"Java OCI implementation" search reveals information about Oracle Cloud Infrastructure, not about Open Container Initiative.

There’s a podman-maven-plugin from Lex Emmens, but it wraps podman command invocation using ProcessExecutor from ZeroTurnaround.