Tomcat Docker Images#
The cours-devops-docker repository uses the official tomcat Docker image as a key teaching example, specifically for TP07 (practical lab #7), where students deploy a WAR file into a running Tomcat container .
Current Tag Convention#
All actively used and automatically updated Tomcat tags follow the pattern:
tomcat:<version>-jdk<jdk_version>-temurin-noble
The tag in use as of the latest automated update is tomcat:11.0.25-jdk25-temurin-noble . This is the format targeted by the updatecli automation and reflects the upstream Tomcat project's current publishing strategy: Ubuntu Noble (Ubuntu 24.04 LTS) base with Eclipse Temurin JDK.
Alpine Images: No Longer Available#
Tomcat Alpine-based image variants (e.g., tomcat:X.Y-alpine) are no longer published on Docker Hub for current Tomcat versions. The official Tomcat Docker image maintainers dropped Alpine variants in favor of Ubuntu Noble (temurin-noble) as the primary base OS. This is consistent with the same trend observed for other official Docker images such as Maven, which also dropped Alpine variants in favor of Ubuntu Noble .
β οΈ The exam document still contains a reference to
tomcat:10-jre17-temurin-alpinein a Dockerfile example . This tag may not exist on Docker Hub for recent versions and should be treated as illustrative only.
updatecli Automation#
The repository uses updatecli to automatically discover the latest Tomcat tag and open a GitHub pull request when a new version is released. The configuration lives in updatecli/updatecli.d/tomcat-updates.yaml.
How it works#
-
Source β Queries Docker Hub for the latest
tomcatimage tag matching the filter :tagfilter:'^1\d+\.\d+\.\d+-jdk(2[5-9]|[3-9]\d+)-temurin-noble$'versionfilter: same regex without the leading anchor^1- This restricts updates to: Tomcat 11.x (major version starting with
1), JDK 25 or higher, Temurin JDK, Ubuntu Noble base.
-
Targets β Updates two locations inside
content/chapitres/fichiers-nommage-inspect.adoc:- The inline comment explaining the
docker runcommand. - The
docker runcommand itself.
- The inline comment explaining the
-
Action β Opens a GitHub pull request titled
[TP07] Update Tomcat Docker image to <new_tag>with thedependencieslabel .
Tag filter rationale#
The regex ^1\d+\.\d+\.\d+-jdk(2[5-9]|[3-9]\d+)-temurin-noble$ was deliberately tightened from a looser initial pattern introduced in the initial PR to avoid picking up legacy Tomcat 8/9/10.x versions, pin to JDK 25+ only (preventing regressions to older JDK variants), and reduce noisy or invalid update proposals by restricting the candidate tag space .
Key Files#
| File | Purpose |
|---|---|
updatecli/updatecli.d/tomcat-updates.yaml | updatecli pipeline: discovers latest tag, updates docs, opens PR |
content/chapitres/fichiers-nommage-inspect.adoc | Chapter containing the TP07 Tomcat docker run example |
content/examen-final-detaille.adoc | Final exam doc; Tomcat used in multi-stage build example (note: may contain stale Alpine tag) |