Detection

migetpacks detects a Scala application when any of the following are present in the project root:
  • build.sbt
  • build.sc
  • project/ directory

Version Detection

Scala Version

Scala version is resolved in the following priority order:

sbt Version

sbt version is detected from:
sbt 0.13.x is deprecated and will show a warning. sbt versions below 0.13.18 are not supported. sbt 2.x support is experimental.

Java Version

The JDK version used for compilation and runtime is read from: Supported Java versions: 8, 11, 17, 21.

Build Process

migetpacks uses the official sbtscala/scala-sbt Docker image which includes sbt, Scala, and the JDK:

Framework Detection

migetpacks detects the application type and adjusts the build accordingly:

Run Command

The default run command depends on the project type: Override with RUN_COMMAND or a Procfile:

JVM Configuration

The following environment variables are set for production:

Caching

Layer Caching

Dependencies are cached by copying sbt build definition files before the full source:

BUILD_CACHE_DIR

When BUILD_CACHE_DIR is set, sbt and dependency caches persist at:

DHI Support

Docker Hardened Images are supported for Scala runtime.
Scala uses a hybrid approach: the official sbtscala build image (which includes sbt tools) for building, and a DHI distroless image for runtime.

DHI Notes

  • The build image is always the official sbtscala image (DHI does not provide sbt images).
  • Only the runtime stage uses DHI distroless Eclipse Temurin JRE.
  • Java version is read from system.properties (default: 21).
  • Runtime images are distroless (no shell).

Example with DHI

Example

Play Framework app