mirror of
https://github.com/datahub-project/datahub.git
synced 2025-06-27 05:03:31 +00:00
50 lines
1.2 KiB
Python
50 lines
1.2 KiB
Python
import logging
|
|
import os
|
|
import subprocess
|
|
|
|
import pytest
|
|
|
|
from datahub.testing.docker_utils import (
|
|
docker_compose_runner as docker_compose_runner,
|
|
is_responsive as is_responsive,
|
|
wait_for_port as wait_for_port,
|
|
)
|
|
|
|
logger = logging.getLogger(__name__)
|
|
|
|
|
|
@pytest.fixture(scope="session")
|
|
def docker_compose_command():
|
|
"""Docker Compose command to use, it could be either `docker-compose`
|
|
for Docker Compose v1 or `docker compose` for Docker Compose
|
|
v2."""
|
|
|
|
return "docker compose"
|
|
|
|
|
|
def cleanup_image(image_name: str) -> None:
|
|
assert ":" not in image_name, "image_name should not contain a tag"
|
|
|
|
if not os.environ.get("CI"):
|
|
logger.debug("Not cleaning up images to speed up local development")
|
|
return
|
|
|
|
images_proc = subprocess.run(
|
|
f"docker image ls --filter 'reference={image_name}*' -q",
|
|
shell=True,
|
|
capture_output=True,
|
|
text=True,
|
|
check=True,
|
|
)
|
|
|
|
if not images_proc.stdout:
|
|
logger.debug(f"No images to cleanup for {image_name}")
|
|
return
|
|
|
|
image_ids = images_proc.stdout.splitlines()
|
|
subprocess.run(
|
|
f"docker image rm {' '.join(image_ids)}",
|
|
shell=True,
|
|
check=True,
|
|
)
|