Apache Tomcat 9 & 8.5 Docker images with Java 17/8, Debian and legacy Firebird 2.5 support.
109
🐳 Готовые Docker-образы Apache Tomcat для запуска Java веб-приложений.
🐳 Ready-to-use Apache Tomcat Docker images for Java web applications.
Documentation / Документация
Универсальные Docker-образы Apache Tomcat, предназначенные для запуска Java веб-приложений.
Репозиторий содержит две версии:
Обе версии содержат стартовую страницу и поддерживают подключение пользовательских приложений через Docker Volumes.
| Версия | Java | Firebird | Операционная система |
|---|---|---|---|
| Tomcat 9.0.123 | OpenJDK 17 | Нет | Debian 12 Slim |
| Tomcat 8.5.100 | Temurin JDK 8 | 2.5.7 Classic | Ubuntu 22.04 |
Теги образов:
alex89102/tomcat:9.0.123-jdk17-debian12
alex89102/tomcat:8.5.100-jdk8-firebird2.5-legacy
Для новых проектов рекомендуется Tomcat 9.
Tomcat 8.5 предназначен для совместимости с устаревшими приложениями и больше не получает официальных обновлений безопасности.
docker pull alex89102/tomcat:9.0.123-jdk17-debian12
docker run -d \
--name tomcat9 \
--restart unless-stopped \
-p 8080:8080 \
alex89102/tomcat:9.0.123-jdk17-debian12
Стартовая страница:
docker run -d \
--name tomcat9 \
--restart unless-stopped \
-p 8080:8080 \
-v /opt/mywebsite:/usr/local/tomcat/webapps/ROOT:ro \
alex89102/tomcat:9.0.123-jdk17-debian12
Каталог /opt/mywebsite должен содержать распакованное Java веб-приложение.
Файлы должны быть доступны пользователю контейнера с UID 10001. Если приложению необходима запись в собственные каталоги, настройте соответствующие права и тома.
services:
tomcat:
image: alex89102/tomcat:9.0.123-jdk17-debian12
container_name: tomcat9
restart: unless-stopped
ports:
- "8080:8080"
volumes:
- /opt/mywebsite:/usr/local/tomcat/webapps/ROOT:ro
mem_limit: 4g
Чтобы использовать встроенную стартовую страницу, удалите секцию volumes.
Сборка предназначена для запуска старых Java-приложений, использующих Firebird.
docker pull alex89102/tomcat:8.5.100-jdk8-firebird2.5-legacy
docker run -d \
--name tomcat85 \
--restart unless-stopped \
-p 8080:8080 \
alex89102/tomcat:8.5.100-jdk8-firebird2.5-legacy
Стартовая страница:
Пример Docker Compose:
services:
tomcat:
image: alex89102/tomcat:8.5.100-jdk8-firebird2.5-legacy
container_name: tomcat85
restart: unless-stopped
ports:
- "8080:8080"
volumes:
- /opt/mywebsite:/usr/local/tomcat/webapps/ROOT
- /opt/firebird-data:/opt/firebird/data
- /opt/firebird-config/aliases.conf:/opt/firebird/aliases.conf:ro
- /opt/firebird-config/security2.fdb:/opt/firebird/security2.fdb
- /opt/firebird-config/UDF:/opt/firebird/UDF:ro
mem_limit: 4g
ulimits:
nofile:
soft: 65535
hard: 65535
Важно: пример предполагает, что базы данных и конфигурационные файлы уже существуют, а права доступа настроены.
Не рекомендуется монтировать весь каталог /opt/firebird, поскольку это скроет установленный внутри образа Firebird.
| Путь | Назначение |
|---|---|
/opt/firebird/data | Файлы баз данных |
/opt/firebird/security2.fdb | База пользователей Firebird |
/opt/firebird/aliases.conf | Псевдонимы баз данных |
/opt/firebird/UDF | Внешние функции |
/opt/firebird/firebird.log | Журнал Firebird |
Пример aliases.conf:
ROOTDB = /opt/firebird/data/rootdb.fdb
Необходимо обеспечить права чтения и записи для пользователя, под которым работает Firebird.
Порт 3050 не требуется публиковать, если Tomcat и Firebird работают внутри одного контейнера.
Просмотр логов:
docker logs -f tomcat9
Версия Java:
docker exec tomcat9 java -version
Версия Tomcat:
docker exec tomcat9 /usr/local/tomcat/bin/version.sh
Состояние Healthcheck (Tomcat 9):
docker inspect -f '{{.State.Health.Status}}' tomcat9
Перезапуск контейнера:
docker restart tomcat9
Просмотр процессов:
docker top tomcat85
latest.Предупреждение: Tomcat 8.5 и Firebird 2.5 больше не поддерживаются разработчиками. Legacy-сборка предназначена исключительно для совместимости с существующим программным обеспечением и может содержать неисправленные уязвимости.
Ready-to-use Docker images for running Java web applications with Apache Tomcat.
Two variants are available:
Both variants include a welcome page and support deploying custom Java web applications through Docker volumes.
| Version | Java | Firebird | Base OS |
|---|---|---|---|
| Tomcat 9.0.123 | OpenJDK 17 | Not included | Debian 12 Slim |
| Tomcat 8.5.100 | Temurin JDK 8 | 2.5.7 Classic | Ubuntu 22.04 |
Docker tags:
alex89102/tomcat:9.0.123-jdk17-debian12
alex89102/tomcat:8.5.100-jdk8-firebird2.5-legacy
Tomcat 9 is recommended for new deployments.
The Tomcat 8.5 variant is provided for compatibility with legacy applications and is no longer officially supported.
docker pull alex89102/tomcat:9.0.123-jdk17-debian12
docker run -d \
--name tomcat9 \
--restart unless-stopped \
-p 8080:8080 \
alex89102/tomcat:9.0.123-jdk17-debian12
docker run -d \
--name tomcat9 \
--restart unless-stopped \
-p 8080:8080 \
-v /opt/mywebsite:/usr/local/tomcat/webapps/ROOT:ro \
alex89102/tomcat:9.0.123-jdk17-debian12
The mounted directory must contain an exploded Java web application readable by UID 10001.
Applications requiring write access may need additional writable volumes.
services:
tomcat:
image: alex89102/tomcat:9.0.123-jdk17-debian12
container_name: tomcat9
restart: unless-stopped
ports:
- "8080:8080"
volumes:
- /opt/mywebsite:/usr/local/tomcat/webapps/ROOT:ro
mem_limit: 4g
Remove volumes to display the built-in welcome page.
Designed for legacy Java applications requiring an integrated Firebird database server.
docker pull alex89102/tomcat:8.5.100-jdk8-firebird2.5-legacy
docker run -d \
--name tomcat85 \
--restart unless-stopped \
-p 8080:8080 \
alex89102/tomcat:8.5.100-jdk8-firebird2.5-legacy
services:
tomcat:
image: alex89102/tomcat:8.5.100-jdk8-firebird2.5-legacy
container_name: tomcat85
restart: unless-stopped
ports:
- "8080:8080"
volumes:
- /opt/mywebsite:/usr/local/tomcat/webapps/ROOT
- /opt/firebird-data:/opt/firebird/data
- /opt/firebird-config/aliases.conf:/opt/firebird/aliases.conf:ro
- /opt/firebird-config/security2.fdb:/opt/firebird/security2.fdb
- /opt/firebird-config/UDF:/opt/firebird/UDF:ro
mem_limit: 4g
The example assumes that database and configuration files already exist and are accessible by the Firebird process.
Do not mount an empty directory over /opt/firebird, as this hides the Firebird installation included in the image.
| Path | Description |
|---|---|
/opt/firebird/data | Database files |
/opt/firebird/security2.fdb | Firebird authentication database |
/opt/firebird/aliases.conf | Database aliases |
/opt/firebird/UDF | User-defined function libraries |
/opt/firebird/firebird.log | Server log |
Example database alias:
ROOTDB = /opt/firebird/data/rootdb.fdb
Make sure the Firebird process has the required file permissions.
Port 3050 does not need to be exposed externally when Tomcat and Firebird communicate inside the same container.
View logs:
docker logs -f tomcat9
Check Java version:
docker exec tomcat9 java -version
Check Tomcat version:
docker exec tomcat9 /usr/local/tomcat/bin/version.sh
Check Tomcat 9 health status:
docker inspect -f '{{.State.Health.Status}}' tomcat9
Restart:
docker restart tomcat9
Legacy Warning: Apache Tomcat 8.5 and Firebird 2.5 are end-of-life products. The legacy image is intended for compatibility with existing applications and may contain unpatched vulnerabilities.
Docker Hub:
https://hub.docker.com/r/alex89102/tomcat
Original legacy repository:
https://hub.docker.com/r/alex89102/tomcat-8-5-16-jdk8
The original Tomcat 8.5.16 image remains available for existing deployments.
Future image updates are published in the main repository.
Maintainer: alex89102
Apache Tomcat Docker images for modern Java applications and legacy Firebird environments.
Content type
Image
Digest
sha256:75b0d488f…
Size
124.7 MB
Last updated
11 days ago
docker pull alex89102/tomcat:8.5.100-jdk8-firebird2.5-legacy