# ================================================================ # docker-compose.yml — JasperReports Server 8.2.0 # # Serviços: # - postgres: PostgreSQL 14 (persistência via volume) # - jasperserver: JasperReports Server no Tomcat 9 # # Uso: # docker compose up -d # ================================================================ services: # ── Banco de Dados ──────────────────────────────────────────── postgres: image: postgres:16 container_name: jasper_postgres # restart: always environment: POSTGRES_USER: ${POSTGRES_USER} POSTGRES_PASSWORD: ${POSTGRES_PASSWORD} POSTGRES_DB: ${POSTGRES_DB} volumes: - postgres_data:/var/lib/postgresql/data networks: - jasper-net healthcheck: test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER} -d ${POSTGRES_DB}"] interval: 10s timeout: 5s retries: 10 start_period: 30s # ── JasperReports Server ────────────────────────────────────── jasperserver: build: context: . dockerfile: Dockerfile container_name: jasper_server # restart: always depends_on: postgres: condition: service_healthy environment: JS_DB_HOST: ${JS_DB_HOST} JS_DB_PORT: ${JS_DB_PORT} JS_DB_USERNAME: ${JS_DB_USERNAME} JS_DB_PASSWORD: ${JS_DB_PASSWORD} JS_DB_NAME: ${JS_DB_NAME} ports: - "8080:8080" volumes: # Bind mounts para ./deploy (facilita migração de servidor) - ./deploy/webapps:/usr/local/tomcat/webapps # WAR do JasperServer - ./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 networks: - jasper-net # ── Volumes ─────────────────────────────────────────────────────── volumes: postgres_data: driver: local # ── Rede Interna ────────────────────────────────────────────────── networks: jasper-net: driver: bridge