Centro de Ayuda

Java + Tomcat + PostgreSQL

Apache Tomcat como contenedor de servlets y PostgreSQL como base de datos.

La variante del Stack de Tomcat para proyectos que ya trabajan con PostgreSQL o que necesitan sus tipos de datos avanzados, como JSON nativo o búsqueda de texto completo.

Servicios que incluye

Además de tu aplicación, el Stack levanta PostgreSQL, un nginx que recibe el tráfico del puerto 80, un servicio de backups automáticos y el administrador de archivos web.

Estructura del proyecto

text
.
├── app
│   ├── META-INF
│   │   └── MANIFEST.MF
│   ├── WEB-INF
│   │   ├── ...
│   │   └── web.xml
│   ├── images
│   │   └── tomcat.gif
│   ├── MANIFEST.MF
│   ├── hello.jsp
│   ├── index.html
│   └── status.json
├── backup
│   └── backup-runner.sh
├── nginx
│   └── default.conf
├── .env.example
├── app.Dockerfile
└── compose.yaml

Puesta en marcha

Instalá el Stack y levantalo:

bash
docker-deploy-stack --stack java/tomcat-postgres
cd /root/stack/java/tomcat-postgres
docker compose up -d

Después reemplazá la aplicación de ejemplo por la tuya, desde Git, por SFTP o desde el administrador de archivos web, siguiendo como-despliego-una-aplicacion-en-un-stack.md. Tu código va en la carpeta app/.

Cada vez que actualices el código, aplicá los cambios:

bash
docker compose up -d --build

Configuración

Los valores editables están en el archivo .env del Stack:

Variable Por defecto Para qué sirve
APP_PORT 80 Puerto público del Stack.
APP_ENV development Entorno de la aplicación.
DB_NAME example Nombre de la base de datos.
BACKUP_ENABLED 1 Backups automáticos: 1 activados, 0 desactivados.
BACKUP_INTERVAL_SECONDS 86400 Cada cuántos segundos se hace un backup.
BACKUP_RETENTION_DAYS 7 Cuántos días se conservan los backups.
POSTGRES_VERSION 16-alpine Versión de la imagen correspondiente.

Después de cambiarlo, aplicá los cambios con docker compose up -d.

Comandos útiles

bash
docker compose ps          # ver los contenedores que están corriendo
docker compose logs -f     # ver los logs en vivo
docker compose restart     # reiniciar los servicios
docker compose down        # detener y eliminar los contenedores