services: backend: container_name: ranking_backend build: context: ./backend dockerfile: Dockerfile ports: - "8010:8000" env_file: - ./backend/.env extra_hosts: - "host.docker.internal:host-gateway" environment: - API_HOST=0.0.0.0 - API_PORT=8000 - API_RELOAD=true - CORS_ORIGINS=http://localhost:5173,http://frontend:5173 - LOG_LEVEL=INFO volumes: - ./backend/src:/app/src - ./backend/scripts:/app/scripts - /etc/localtime:/etc/localtime:ro networks: - shared_network depends_on: oracle18c: condition: service_healthy restart: unless-stopped frontend: container_name: ranking_frontend build: context: ./frontend dockerfile: Dockerfile depends_on: - backend ports: - "5173:5173" volumes: - ./frontend/src:/app/src - ./frontend/index.html:/app/index.html - ./frontend/vite.config.js:/app/vite.config.js - /etc/localtime:/etc/localtime:ro links: - backend networks: - shared_network restart: unless-stopped oracle18c: container_name: mqapilc_oracle18c image: gvenzl/oracle-xe:18-slim environment: - ORACLE_PASSWORD=local123 - ORACLE_CHARACTERSET=AL32UTF8 - APP_USER=local123 - APP_USER_PASSWORD=local123 - TZ=America/Sao_Paulo ports: - "1521:1521" - "5500:5500" volumes: - oracle_data:/opt/oracle/oradata healthcheck: test: ["CMD", "bash", "-c", "echo 'SELECT 1 FROM DUAL;' | sqlplus -s SYSTEM/\"$${ORACLE_PASSWORD}\"@localhost:1521/XEPDB1"] interval: 30s timeout: 10s retries: 20 networks: - shared_network networks: shared_network: external: true volumes: oracle_data: driver: local