upgrade PostgreSQL 16→18 e melhorias de robustez
- PostgreSQL 18: atualiza imagem e corrige path de dados (/var/lib/postgresql) - entrypoint: detecta schema ausente (jiresourcefolder) e reinstala automaticamente - entrypoint: corrige captura de PIPESTATUS com set +e/set -e ao redor do pipeline - logs: bind mount movido de /var/log para /var/log/jasperserver (não sobrescreve o sistema) - download.sh: fonte do instalador migrada de SourceForge para Gitea interno - Makefile: simplificado para build/up/down/clean/push/pull/logs + suporte a registry Gitea - README: atualiza versão PG, URLs de download e adiciona instrução de publicação no Gitea Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
8f172a65a6
commit
9fea30554f
@ -52,7 +52,7 @@ COPY config/default_master.properties /config/default_master.properties
|
||||
RUN cp -r ${CATALINA_HOME}/lib /opt/tomcat-lib-orig
|
||||
|
||||
# ── Criar diretório para o marcador de instalação ───────────────────────────
|
||||
RUN mkdir -p /var/jasperserver /var/log
|
||||
RUN mkdir -p /var/jasperserver /var/log/jasperserver
|
||||
|
||||
# ── Copiar e preparar entrypoint ────────────────────────────────────────────
|
||||
COPY entrypoint.sh /entrypoint.sh
|
||||
|
||||
38
Makefile
38
Makefile
@ -2,37 +2,33 @@
|
||||
# Makefile — JasperReports Server Docker
|
||||
# ================================================================
|
||||
|
||||
.PHONY: build up down restart logs clean reinstall
|
||||
REGISTRY ?= gitea.solucaoti.net.br
|
||||
IMAGE_NAME ?= rogeriolima/jasperserver
|
||||
IMAGE_TAG ?= 8.2.0
|
||||
FULL_IMAGE = $(REGISTRY)/$(IMAGE_NAME):$(IMAGE_TAG)
|
||||
|
||||
.PHONY: build up down clean push pull logs
|
||||
|
||||
## Constrói a imagem Docker
|
||||
build:
|
||||
docker compose build
|
||||
|
||||
## Sobe os containers em background
|
||||
up:
|
||||
docker compose up -d
|
||||
|
||||
## Para e remove os containers
|
||||
down:
|
||||
docker compose down
|
||||
|
||||
## Reinicia os containers
|
||||
restart:
|
||||
docker compose restart
|
||||
|
||||
## Exibe os logs do JasperServer em tempo real
|
||||
logs:
|
||||
docker compose logs -f jasperserver
|
||||
|
||||
|
||||
## Com grandes poderes vem grandes responsabilidades!
|
||||
## Para, remove containers e volumes (reset completo)
|
||||
## Para e remove containers e volumes (reset completo)
|
||||
clean:
|
||||
docker compose down -v
|
||||
|
||||
## Limpa tudo e reinstala do zero
|
||||
reinstall:
|
||||
docker compose down -v
|
||||
sudo rm -rf deploy
|
||||
docker compose build
|
||||
docker compose up -d
|
||||
logs:
|
||||
docker compose logs -f jasperserver
|
||||
|
||||
push:
|
||||
docker tag jasperserver-jasperserver:latest $(FULL_IMAGE)
|
||||
docker push $(FULL_IMAGE)
|
||||
|
||||
pull:
|
||||
docker pull $(FULL_IMAGE)
|
||||
docker tag $(FULL_IMAGE) jasperserver-jasperserver:latest
|
||||
|
||||
32
README.md
32
README.md
@ -2,7 +2,7 @@
|
||||
|
||||
Ambiente Dockerizado do **JasperReports Server 8.2.0 Community Edition** usando:
|
||||
- **Tomcat 9** (imagem base `tomcat:9.0-jdk11-temurin`)
|
||||
- **PostgreSQL 14** (container separado)
|
||||
- **PostgreSQL 18** (container separado)
|
||||
- **Docker Compose** para orquestração
|
||||
|
||||
---
|
||||
@ -34,8 +34,8 @@ chmod +x downloads/download.sh
|
||||
bash downloads/download.sh
|
||||
```
|
||||
|
||||
> Se o download automático falhar, baixe manualmente de:
|
||||
> https://sourceforge.net/projects/jr-community-installers/files/Server/
|
||||
> Se o download automático falhar, baixe manualmente do Gitea:
|
||||
> https://gitea.solucaoti.net.br/rogeriolima/-/packages/generic/TIB_js-jrs-cp/8.2.0
|
||||
> e coloque o arquivo `TIB_js-jrs-cp_8.2.0_bin.zip` na pasta `downloads/`.
|
||||
|
||||
### 2. Configurar variáveis de ambiente
|
||||
@ -107,9 +107,33 @@ docker compose down -v
|
||||
|
||||
---
|
||||
|
||||
## 📦 Publicar nova versão do Instalador no Gitea
|
||||
|
||||
Após baixar o ZIP do instalador, publique-o no repositório de pacotes do Gitea para centralizar o artefato:
|
||||
|
||||
```bash
|
||||
export GITEA_URL="https://gitea.solucaoti.net.br"
|
||||
export GITEA_OWNER="rogeriolima"
|
||||
export GITEA_USER="rogeriolima"
|
||||
|
||||
read -rs "GITEA_TOKEN?Token Gitea: "
|
||||
echo
|
||||
|
||||
curl --fail-with-body \
|
||||
--user "${GITEA_USER}:${GITEA_TOKEN}" \
|
||||
--upload-file ./TIB_js-jrs-cp_8.2.0_bin.zip \
|
||||
"${GITEA_URL}/api/packages/${GITEA_OWNER}/generic/TIB_js-jrs-cp/8.2.0/TIB_js-jrs-cp_8.2.0_bin.zip"
|
||||
|
||||
unset GITEA_TOKEN
|
||||
```
|
||||
|
||||
> Execute a partir da pasta `downloads/`. O token precisa ter permissão de escrita em pacotes (`package:write`).
|
||||
|
||||
---
|
||||
|
||||
## 📋 Referências
|
||||
|
||||
- [GEMINI.md](./GEMINI.md) — Guia de instalação standalone (base deste projeto)
|
||||
- [JasperReports Server no SourceForge](https://sourceforge.net/projects/jr-community-installers/)
|
||||
- [Imagem Docker Tomcat 9](https://hub.docker.com/_/tomcat)
|
||||
- [Imagem Docker PostgreSQL 14](https://hub.docker.com/_/postgres)
|
||||
- [Imagem Docker PostgreSQL 18](https://hub.docker.com/_/postgres)
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
# docker-compose.yml — JasperReports Server 8.2.0
|
||||
#
|
||||
# Serviços:
|
||||
# - postgres: PostgreSQL 14 (persistência via volume)
|
||||
# - postgres: PostgreSQL 18 (persistência via volume)
|
||||
# - jasperserver: JasperReports Server no Tomcat 9
|
||||
#
|
||||
# Uso:
|
||||
@ -13,7 +13,7 @@ services:
|
||||
|
||||
# ── Banco de Dados ────────────────────────────────────────────
|
||||
postgres:
|
||||
image: postgres:16
|
||||
image: postgres:18
|
||||
container_name: jasper_postgres
|
||||
# restart: always
|
||||
environment:
|
||||
@ -21,7 +21,7 @@ services:
|
||||
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
|
||||
POSTGRES_DB: ${POSTGRES_DB}
|
||||
volumes:
|
||||
- postgres_data:/var/lib/postgresql/data
|
||||
- postgres_data:/var/lib/postgresql
|
||||
networks:
|
||||
- jasper-net
|
||||
healthcheck:
|
||||
@ -55,7 +55,7 @@ services:
|
||||
- ./deploy/lib:/usr/local/tomcat/lib # Driver JDBC PostgreSQL
|
||||
- ./deploy/jasperserver:/var/jasperserver # Marcador de instalação
|
||||
- ./deploy/keystore:/root # Keystore (.jrsksp)
|
||||
- ./deploy/logs:/var/log # Logs
|
||||
- ./deploy/logs:/var/log/jasperserver # Logs
|
||||
networks:
|
||||
- jasper-net
|
||||
|
||||
|
||||
@ -8,7 +8,7 @@ set -e
|
||||
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
FILENAME="TIB_js-jrs-cp_8.2.0_bin.zip"
|
||||
DOWNLOAD_URL="https://master.dl.sourceforge.net/project/jr-community-installers/Server/${FILENAME}"
|
||||
DOWNLOAD_URL="https://gitea.solucaoti.net.br/api/packages/rogeriolima/generic/TIB_js-jrs-cp/8.2.0/${FILENAME}"
|
||||
DEST="${SCRIPT_DIR}/${FILENAME}"
|
||||
|
||||
if [ -f "$DEST" ]; then
|
||||
|
||||
@ -57,15 +57,17 @@ install_jasperserver() {
|
||||
|
||||
# Executa o instalador CE no modo minimal (sem dados de exemplo)
|
||||
# O "echo y" responde automaticamente ao prompt de recriação do banco
|
||||
echo "y" | ./js-install-ce.sh minimal 2>&1 | tee /var/log/jasper-install.log
|
||||
set +e
|
||||
echo "y" | ./js-install-ce.sh minimal 2>&1 | tee /var/log/jasperserver/jasper-install.log
|
||||
INSTALL_RC=${PIPESTATUS[1]}
|
||||
set -e
|
||||
|
||||
if [ $INSTALL_RC -eq 0 ]; then
|
||||
mkdir -p "$(dirname "$INSTALL_MARKER")"
|
||||
touch "$INSTALL_MARKER"
|
||||
echo "✅ Instalação concluída com sucesso!"
|
||||
else
|
||||
echo "❌ Falha na instalação! (exit code: $INSTALL_RC) Verifique /var/log/jasper-install.log"
|
||||
echo "❌ Falha na instalação! (exit code: $INSTALL_RC) Verifique /var/log/jasperserver/jasper-install.log"
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
@ -82,7 +84,13 @@ fi
|
||||
prepare_config
|
||||
wait_for_postgres
|
||||
|
||||
if [ ! -f "$INSTALL_MARKER" ]; then
|
||||
DB_HAS_SCHEMA=$(PGPASSWORD="${JS_DB_PASSWORD}" psql -h "${JS_DB_HOST}" -p "${JS_DB_PORT:-5432}" \
|
||||
-U "${JS_DB_USERNAME}" -d "${JS_DB_NAME}" -tAc \
|
||||
"SELECT 1 FROM information_schema.tables WHERE table_name='jiresourcefolder'" 2>/dev/null)
|
||||
|
||||
if [ ! -f "$INSTALL_MARKER" ] || [ "$DB_HAS_SCHEMA" != "1" ]; then
|
||||
[ "$DB_HAS_SCHEMA" != "1" ] && echo "⚠️ Schema ausente no banco. Reinstalando..."
|
||||
rm -f "$INSTALL_MARKER"
|
||||
install_jasperserver
|
||||
else
|
||||
echo "✅ JasperReports Server já instalado. Pulando instalação."
|
||||
|
||||
Loading…
Reference in New Issue
Block a user