- 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>
66 lines
3.5 KiB
Docker
66 lines
3.5 KiB
Docker
# ================================================================
|
|
# Dockerfile — JasperReports Server 8.2.0 Community Edition
|
|
#
|
|
# Base: tomcat:9.0-jdk11-temurin (contém Tomcat 9 + JDK 11)
|
|
#
|
|
# Referências:
|
|
# - GEMINI.md (guia de instalação standalone)
|
|
# - https://sourceforge.net/projects/jr-community-installers/
|
|
# ================================================================
|
|
|
|
FROM tomcat:9.0-jdk11-temurin
|
|
|
|
LABEL maintainer="jasperserver-docker" \
|
|
version="8.2.0" \
|
|
description="JasperReports Server 8.2.0 CE no Tomcat 9"
|
|
|
|
# ── Variáveis de ambiente ────────────────────────────────────────────────────
|
|
ENV JASPER_VERSION=8.2.0 \
|
|
JASPER_INSTALL_DIR=/opt/jasperreports-server-cp-8.2.0-bin \
|
|
JAVA_OPTS="-Djava.awt.headless=true -Djava.security.egd=file:/dev/./urandom" \
|
|
CATALINA_OPTS="-Xms1024M -Xmx2048M -server -XX:+UseParallelGC"
|
|
|
|
# ── Instalar dependências ────────────────────────────────────────────────────
|
|
RUN apt-get update && apt-get install -y --no-install-recommends \
|
|
unzip \
|
|
wget \
|
|
postgresql-client \
|
|
dos2unix \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
# ── Remover webapps padrão do Tomcat ────────────────────────────────────────
|
|
RUN rm -rf ${CATALINA_HOME}/webapps/*
|
|
|
|
# ── Copiar e extrair o instalador do JasperReports ──────────────────────────
|
|
# O arquivo deve existir em ./downloads/ antes de executar o build
|
|
COPY downloads/TIB_js-jrs-cp_8.2.0_bin.zip /tmp/
|
|
|
|
RUN echo "📦 Extraindo JasperReports Server ${JASPER_VERSION}..." \
|
|
&& unzip -q /tmp/TIB_js-jrs-cp_8.2.0_bin.zip -d /opt/ \
|
|
&& rm /tmp/TIB_js-jrs-cp_8.2.0_bin.zip \
|
|
&& echo "✅ Extração concluída."
|
|
|
|
# ── Ajustar permissões dos scripts (conforme GEMINI.md) ─────────────────────
|
|
RUN chmod -R u+rwx ${JASPER_INSTALL_DIR}/ \
|
|
&& find ${JASPER_INSTALL_DIR}/buildomatic -name "*.sh" -exec chmod +x {} \;
|
|
|
|
# ── Copiar arquivo de configuração base ─────────────────────────────────────
|
|
# (o entrypoint.sh aplica as variáveis de ambiente em tempo de execução)
|
|
COPY config/default_master.properties /config/default_master.properties
|
|
|
|
# ── Backup dos libs originais do Tomcat (necessário para bind mounts) ────
|
|
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/jasperserver
|
|
|
|
# ── Copiar e preparar entrypoint ────────────────────────────────────────────
|
|
COPY entrypoint.sh /entrypoint.sh
|
|
RUN dos2unix /entrypoint.sh && chmod +x /entrypoint.sh
|
|
|
|
# ── Porta do Tomcat ─────────────────────────────────────────────────────────
|
|
EXPOSE 8080
|
|
|
|
# ── Ponto de entrada ────────────────────────────────────────────────────────
|
|
ENTRYPOINT ["/entrypoint.sh"]
|