services:
  directus:
    image: directus/directus:${DIRECTUS_VERSION:-9.23.1}
    container_name: directus-inframe-${TEST_SUITE_ID:-main}-${DIRECTUS_VERSION:-latest}
    # Sem mapeamento de portas - testes usam docker exec diretamente no container
    # Isso permite execução paralela de múltiplas versões do Directus
    environment:
      DB_CLIENT: 'sqlite3'
      DB_FILENAME: '/tmp/data/directus.db'
      KEY: 'test-key'
      SECRET: 'test-secret'
      ADMIN_EMAIL: 'admin@example.com'
      ADMIN_PASSWORD: 'admin123'
      PUBLIC_URL: 'http://directus:8055'
      STORAGE_LOCAL_ROOT: '/directus/uploads'
      EXTENSIONS_PATH: './extensions'
      EXTENSIONS_AUTO_RELOAD: 'true'
      PERMISSIONS_CACHE_TTL: '0'
      CACHE_ENABLED: 'false'
      ACCEPT_TERMS: 'true'
      PROJECT_OWNER: 'admin@example.com'
    volumes:
      - ./dist/app.js:/directus/extensions/directus-extension-inframe/dist/app.js:ro
      - ./dist/api.js:/directus/extensions/directus-extension-inframe/dist/api.js:ro
      - ./package.json:/directus/extensions/directus-extension-inframe/package.json:ro
    tmpfs:
      - /directus/uploads:rw,noexec,nosuid,size=64M,mode=777 # Usa memória temporária para uploads com permissões adequadas
      - /tmp/data:rw,size=64M,mode=777 # Usa memória temporária para o banco de dados
    networks:
      - directus-test-network
    healthcheck:
      test: ['CMD', 'wget', '--no-verbose', '--tries=1', '--spider', 'http://0.0.0.0:8055/server/health']
      interval: 3s
      timeout: 3s
      retries: 40
      start_period: 60s

networks:
  directus-test-network:
    driver: bridge
    name: directus-inframe-test-${TEST_SUITE_ID:-main}-${DIRECTUS_VERSION:-latest}
