def __init__(
        self,
        compose_file: str = "../../docker/docker-compose.test.yml",
        env_vars: Optional[Dict[str, str]] = None,
        minimal_services: Optional[bool] = False,
    ):
        """Initialize a Docker Compose manager.

        Args:
            compose_file: Path to the docker-compose file, relative to tests directory
            env_vars: Optional environment variables to pass to docker-compose
            minimal_services: If True, only start essential services like databases
        """
        # Get the tests directory
        self.tests_dir = os.path.abspath(os.path.join(os.path.dirname(__file__), ".."))

        # Full path to the compose file
        self.compose_file = os.path.join(self.tests_dir, compose_file)

        # Make sure file exists
        if not os.path.exists(self.compose_file):
            raise FileNotFoundError(f"Compose file not found: {self.compose_file}")

        # Store current working directory
        self.cwd = os.getcwd()

        self.env_vars = env_vars or {}
        self.minimal_services = minimal_services
        self.is_running = False
        self.managed_services = []

        # Determine which Docker Compose command to use
        self.compose_cmd, self.compose_version = self._get_docker_compose_command()

        logger.info(
            f"Initialized Docker Compose manager with file: {self.compose_file} "
            f"(project: {DEFAULT_PROJECT_NAME}, using {self.compose_cmd} v{self.compose_version})"
        )
Initialize a Docker Compose manager.

        Args:
            compose_file: Path to the docker-compose file, relative to tests directory
            env_vars: Optional environment variables to pass to docker-compose
            minimal_services: If True, only start essential services like databases
        
backend/tests/helpers/docker.py