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
.
├── 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:
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:
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
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