Java + Tomcat + PostgreSQL
Apache Tomcat como contêiner de servlets e PostgreSQL como banco de dados.
A variante do Stack Tomcat para projetos que já utilizam PostgreSQL ou que precisam de seus tipos de dados avançados, como JSON nativo ou busca em texto completo.
Serviços incluídos
Além da sua aplicação, o Stack levanta o PostgreSQL, um nginx que recebe o tráfego na porta 80, um serviço de backups automáticos e o gerenciador de arquivos web.
Estrutura do projeto
.
├── 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
Iniciando
Instale o Stack e inicie-o:
docker-deploy-stack --stack java/tomcat-postgres
cd /root/stack/java/tomcat-postgres
docker compose up -d
Depois substitua o aplicativo de exemplo pelo seu, via Git, por SFTP ou pelo gerenciador de arquivos web, seguindo como-despliego-una-aplicacion-en-un-stack.md. Seu código vai na pasta app/.
Cada vez que você atualizar o código, aplique as alterações:
docker compose up -d --build
Configuração
Os valores editáveis estão no arquivo .env do Stack:
| Variável | Padrão | Para que serve |
|---|---|---|
APP_PORT |
80 |
Porta pública do Stack. |
APP_ENV |
development |
Ambiente da aplicação. |
DB_NAME |
example |
Nome do banco de dados. |
BACKUP_ENABLED |
1 |
Backups automáticos: 1 ativados, 0 desativados. |
BACKUP_INTERVAL_SECONDS |
86400 |
Intervalo em segundos entre backups. |
BACKUP_RETENTION_DAYS |
7 |
Quantos dias os backups são mantidos. |
POSTGRES_VERSION |
16-alpine |
Versão da imagem correspondente. |
Depois de alterá-los, aplique as mudanças com docker compose up -d.
Comandos úteis
docker compose ps # ver os contêineres que estão em execução
docker compose logs -f # ver os logs em tempo real
docker compose restart # reiniciar os serviços
docker compose down # parar e remover os contêineres