src.asqi.container_manager¶
Attributes¶
Exceptions¶
Exception raised when manifest extraction fails. |
|
Exception raised when required Docker images are missing. |
|
Exception raised when extracting mounts from args fails. |
Functions¶
Context manager for Docker client with proper cleanup. |
|
|
Check if Docker images are available locally. |
|
Pull Docker images from registry if not available locally. |
Extract and parse manifest.yaml from a Docker image. |
|
|
Run a Docker container with specified arguments and return results. |
|
Force-remove any containers that are still tracked as active. |
Module Contents¶
- src.asqi.container_manager.logger¶
- src.asqi.container_manager.INPUT_MOUNT_PATH¶
- src.asqi.container_manager.OUTPUT_MOUNT_PATH¶
- exception src.asqi.container_manager.ManifestExtractionError(message: str, error_type: str, original_error: Exception | None = None)¶
Bases:
Exception
Exception raised when manifest extraction fails.
- error_type¶
- original_error = None¶
- exception src.asqi.container_manager.MissingImageException¶
Bases:
Exception
Exception raised when required Docker images are missing.
- src.asqi.container_manager.docker_client()¶
Context manager for Docker client with proper cleanup.
- src.asqi.container_manager.check_images_availability(images: List[str]) Dict[str, bool] ¶
Check if Docker images are available locally. - Tries to fetch each image by exact name:tag.
- Returns:
Dict mapping image -> True/False indicating availability
- src.asqi.container_manager.pull_images(images: List[str])¶
Pull Docker images from registry if not available locally.
- Args:
images: List of image references (e.g., ‘ubuntu:22.04’, ‘user/repo:tag’)
- Returns:
None on success
- Raises:
MissingImageException: If images cannot be pulled (includes alternative suggestions) ConnectionError: If unable to connect to Docker daemon
- src.asqi.container_manager.extract_manifest_from_image(image: str, manifest_path: str = '/app/manifest.yaml') asqi.schemas.Manifest | None ¶
Extract and parse manifest.yaml from a Docker image.
- Args:
image: Docker image name manifest_path: Path to manifest file inside container
- Returns:
Parsed Manifest object or None if extraction fails
- Raises:
ManifestExtractionError: If extraction fails with detailed error information
- exception src.asqi.container_manager.MountExtractionError¶
Bases:
Exception
Exception raised when extracting mounts from args fails.
- src.asqi.container_manager.run_container_with_args(image: str, args: List[str], container_config: asqi.config.ContainerConfig, environment: Dict[str, str] | None = None) Dict[str, Any] ¶
Run a Docker container with specified arguments and return results.
- Args:
image: Docker image to run args: Command line arguments to pass to container container_config: Container execution configurations environment: Optional dictionary of environment variables to pass to container
- Returns:
Dictionary with execution results including exit_code, output, success, etc.
- src.asqi.container_manager.shutdown_containers() None ¶
Force-remove any containers that are still tracked as active.
This is intended to run during atexit or signal handling to ensure worker containers do not linger if the main process is interrupted.