# ================================================================ # 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 # ── 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"]