Central de Ajuda

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

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

Iniciando

Instale o Stack e inicie-o:

bash
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:

bash
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

bash
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
Guia g.0288 · Versão de origem 1 · pt-BR