Skip to main content
Skip to main content
🚧 Work in Progress

Customize Java runtime environment

Build Custom Runtime Images​

Zerops allows you to build custom runtime images (CRI) when the default base runtime images don't meet your Java application's requirements. This is an optional phase in the build and deploy pipeline.

Configuration​

Default Java Runtime Environment​

The default Java runtime environment contains:

  • Alpine 3.20
  • Selected version of Java when the runtime service was created
  • zCLI
  • Git

When You Need a Custom Runtime Image​

If your Java application needs more than what's included in the default environment, you'll need to build a custom runtime image. Common scenarios include:

  • Build tools: When you need Maven, Gradle, or other build tools not included by default
  • Native libraries: When your Java dependencies require system libraries that aren't in the default environment
  • Application servers: When you need Tomcat, Jetty, or other application servers
  • Different base OS: When you need Ubuntu instead of Alpine for specific compatibility requirements
important

You should not include your application code in the custom runtime image, as your built/packaged code is deployed automatically into fresh containers.

Here are Java-specific examples of configuring custom runtime images in your zerops.yml:

Basic Java Setup​

run:
os: ubuntu
base: {{serviceVersion}
prepareCommands:
- sudo apk add imagemagick

Using Build Files in Runtime Preparation​

build:
addToRunPrepare:
- pom.xml
- libs/
run:
prepareCommands:
- sudo apt-get update
- sudo apt-get install -y maven
- mvn dependency:resolve

For complete configuration details, see the runtime prepare phase configuration guide.

Process and Caching​

How Runtime Prepare Works​

The runtime prepare process follows the same steps for all runtimes. See how runtime prepare works for the complete process details.

Caching Behavior​

Zerops caches custom runtime images to optimize deployment times. Learn about custom runtime image caching including when images are cached and reused.

Build Management​

For information about managing builds and deployments, see managing builds and deployments.

Warning

Shared storage mounts are not available during the runtime prepare phase.

Troubleshooting​

If your prepareCommands fail, check the prepare runtime log for specific error messages.