Sign inSign up

alex89102/tomcat

By alex89102

•Updated 11 days ago

Apache Tomcat 9 & 8.5 Docker images with Java 17/8, Debian and legacy Firebird 2.5 support.

Image
Languages & frameworks
Developer tools
Web servers
0

109

alex89102/tomcat repository overview

⁠Apache Tomcat Docker Images

⁠Apache Tomcat 9 / 8.5 • Java 17 / 8 • Debian • Firebird

🐳 Готовые Docker-образы Apache Tomcat для запуска Java веб-приложений.

🐳 Ready-to-use Apache Tomcat Docker images for Java web applications.

Documentation / Документация


⁠🇷🇺 Русский

⁠📦 О проекте

Универсальные Docker-образы Apache Tomcat, предназначенные для запуска Java веб-приложений.

Репозиторий содержит две версии:

  • Tomcat 9 — современная сборка на базе Debian 12 Slim и OpenJDK 17.
  • Tomcat 8.5 Legacy — сборка для устаревших приложений с Java 8 и интегрированным сервером Firebird 2.5.7.

Обе версии содержат стартовую страницу и поддерживают подключение пользовательских приложений через Docker Volumes.

⁠🚀 Доступные версии

ВерсияJavaFirebirdОперационная система
Tomcat 9.0.123OpenJDK 17НетDebian 12 Slim
Tomcat 8.5.100Temurin JDK 82.5.7 ClassicUbuntu 22.04

Теги образов:

alex89102/tomcat:9.0.123-jdk17-debian12
alex89102/tomcat:8.5.100-jdk8-firebird2.5-legacy

Для новых проектов рекомендуется Tomcat 9.

Tomcat 8.5 предназначен для совместимости с устаревшими приложениями и больше не получает официальных обновлений безопасности.


⁠🟦 Apache Tomcat 9 — Modern Edition

⁠Возможности
  • Apache Tomcat 9.0.123
  • OpenJDK 17
  • Debian 12 Slim
  • Запуск без root (UID 10001)
  • Встроенный Docker Healthcheck
  • Информационная стартовая страница
  • Поддержка пользовательских Java-приложений
  • Отсутствие встроенной СУБД
⁠Загрузка образа
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

Стартовая страница:

http://localhost:8080⁠

⁠Подключение своего приложения
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. Если приложению необходима запись в собственные каталоги, настройте соответствующие права и тома.

⁠Docker Compose
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.


⁠🟧 Apache Tomcat 8.5 — Legacy Firebird Edition

Сборка предназначена для запуска старых Java-приложений, использующих Firebird.

⁠Возможности
  • Apache Tomcat 8.5.100
  • Eclipse Temurin Java 8
  • Firebird 2.5.7 Classic Server
  • Ubuntu 22.04
  • Supervisor для управления Tomcat и Firebird
  • Стартовая страница Legacy Edition
  • Поддержка существующих баз данных Firebird
  • Поддержка внешних UDF-библиотек
⁠Загрузка образа
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

Стартовая страница:

http://localhost:8080⁠

⁠Подключение приложения и существующей базы Firebird

Пример 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.

⁠Основные файлы 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.
  • Рекомендуется HTTPS через reverse proxy.
  • Не открывайте Firebird напрямую в интернет.
  • Храните базы данных и резервные копии вне контейнера.
  • Не добавляйте пароли и секреты в публичные Docker-образы.
  • Проверяйте права доступа к подключённым томам.
  • Перед обновлением проверяйте совместимость Java-приложений.

Предупреждение: Tomcat 8.5 и Firebird 2.5 больше не поддерживаются разработчиками. Legacy-сборка предназначена исключительно для совместимости с существующим программным обеспечением и может содержать неисправленные уязвимости.


⁠en English

⁠📦 About

Ready-to-use Docker images for running Java web applications with Apache Tomcat.

Two variants are available:

  • Tomcat 9 Modern Edition — Debian 12 Slim with OpenJDK 17.
  • Tomcat 8.5 Legacy Edition — Java 8 with an integrated Firebird 2.5.7 Classic Server.

Both variants include a welcome page and support deploying custom Java web applications through Docker volumes.

⁠🚀 Available Images

VersionJavaFirebirdBase OS
Tomcat 9.0.123OpenJDK 17Not includedDebian 12 Slim
Tomcat 8.5.100Temurin JDK 82.5.7 ClassicUbuntu 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.


⁠🟦 Tomcat 9 — Modern Edition

⁠Features
  • Apache Tomcat 9.0.123
  • OpenJDK 17
  • Debian 12 Slim
  • Non-root execution (UID 10001)
  • Built-in Docker healthcheck
  • Custom welcome page
  • Support for external Java web applications
  • No bundled database
⁠Pull Image
docker pull alex89102/tomcat:9.0.123-jdk17-debian12
⁠Run Container
docker run -d \
  --name tomcat9 \
  --restart unless-stopped \
  -p 8080:8080 \
  alex89102/tomcat:9.0.123-jdk17-debian12

Open http://localhost:8080⁠

⁠Deploy Your Application
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.

⁠Docker Compose
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.


⁠🟧 Tomcat 8.5 — Legacy Firebird Edition

Designed for legacy Java applications requiring an integrated Firebird database server.

⁠Features
  • Apache Tomcat 8.5.100
  • Eclipse Temurin Java 8
  • Firebird 2.5.7 Classic Server
  • Ubuntu 22.04
  • Supervisor process management
  • Legacy welcome page
  • Support for external Firebird database files
  • Support for custom UDF libraries
⁠Pull Image
docker pull alex89102/tomcat:8.5.100-jdk8-firebird2.5-legacy
⁠Run Container
docker run -d \
  --name tomcat85 \
  --restart unless-stopped \
  -p 8080:8080 \
  alex89102/tomcat:8.5.100-jdk8-firebird2.5-legacy

Open http://localhost:8080⁠

⁠Deploy an Application with Firebird
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.

⁠Firebird Configuration
PathDescription
/opt/firebird/dataDatabase files
/opt/firebird/security2.fdbFirebird authentication database
/opt/firebird/aliases.confDatabase aliases
/opt/firebird/UDFUser-defined function libraries
/opt/firebird/firebird.logServer 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.


⁠🛠️ Administration

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

⁠🔒 Security

  • Use explicit image version tags.
  • Deploy HTTPS using a reverse proxy.
  • Do not expose Firebird directly to the public internet.
  • Keep database files and backups outside containers.
  • Never include passwords or secrets in public Docker images.
  • Ensure mounted volumes have appropriate permissions.
  • Test application compatibility before upgrading.

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.

Tag summary

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