Support Advisory: Transition of Java Agent DockerHub Images from Alpine to Scratch Base
Summary
Effective Java Agent 26.2.0, Splunk AppDynamics is transitioning the official JavaAgent DockerHub images from an Alpine-based image to a Scratch-based image. This change is part of an ongoing effort to enhance security by addressing vulnerabilities associated with the previous base image. The new Scratch-based image provides a significantly reduced attack surface, containing only the JavaAgent binaries and a minimal copy utility, with no shell present.
While a Scratch-based image was initially introduced in version 25.10.0, an Alpine-based version was temporarily re-released on November 14, 2025, to address compatibility issues involving Cluster Auto-Instrumentation and non-root user configurations. With the release of Cluster Agent version 26.2.0, these compatibility issues are resolved. Consequently, JavaAgent DockerHub releases 26.2.0 and later will be exclusively Scratch-based.
Key Characteristics of the Scratch Image
- Includes only the Java Agent binaries and a minimal copy (cp) utility.
- The
cpcommand transfers files as defined in/opt/appdynamics/sources.inifrom/opt/appdynamicsto the destination directory. - The base destination directory must already exist; the cp command can create necessary subdirectories but will not create the root destination directory.
- No shell or standard system utilities are included in the image.
Tag Changes and Image Selection Guidance
- Version 26.2.0 and later: The latest tag now points to Scratch-based image.
- Alpine-based images: To continue using Alpine-based image, use the latest-alpine tag or reference version 26.1.0 or earlier.
- Recommended Action: Evaluate your deployment requirements and update your image tags to ensure compatibility with your preferred base image (Scratch or Alpine).
Compatibility Matrix & Required Actions
Review the compatibility matrix below and adjust your deployments as needed to ensure a smooth transition.
| JavaAgent Image Version | Required Action |
|---|---|
| Alpine-based (< 26.2.0) | No action required |
| Scratch-based (≥ 26.2.0) | No action required |
| JavaAgent Image Version | App Run As | Required Action / Notes |
|---|---|---|
| Alpine-based (< 26.2.0) | Any | No action required |
| Scratch-based (≥ 26.2.0) | Root | No changes needed |
| Scratch-based (≥ 26.2.0) | Non-root (with runAsUser / runAsGroup parameters in Cluster Agent Conifg) | Mitigation required:
|
| JavaAgent Image Version | App Run As | Required Action / Notes |
|---|---|---|
| Alpine-based (< 26.2.0) | Any | No action required |
| Scratch-based (≥ 26.2.0) | Root | Use only -r with cp command: [ "cp", "-r", "/opt/appdynamics/.", "/opt/appdynamics-java" ] |
| Scratch-based (≥ 26.2.0) | Non-root | Mitigation required:
|
Next Steps
- Review your current deployment method and JavaAgent/Cluster Agent versions.
- Apply the specified mitigations when upgrading to version 26.2.0 or later in environments with non-root configurations.
- Contact your AppDynamics representative for further assistance or clarification.
-
For specific YAML or manifest guidance, contact AppDynamics support.
-
Verify shell or utility dependencies for deployments using custom scripts because these are not available in the Scratch-based image.