Stopping Docker containers and network with container name and not project name (#1819)

This commit is contained in:
Ayush Shah 2021-12-17 18:58:54 +05:30 committed by GitHub
parent 7d99d02f22
commit be1c4d4833
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -31,8 +31,6 @@ logger = logging.getLogger(__name__)
logging.getLogger("urllib3").setLevel(logging.WARN)
min_memory_limit = 3 * 1024 * 1024 * 1000
calc_gb = 1024 * 1024 * 1000
local_metadata = "com.docker.compose.project=local-metadata"
release = "com.docker.compose.project=tmp"
# Configure logger.
BASE_LOGGING_FORMAT = (
"[%(asctime)s] %(levelname)-8s {%(name)s:%(lineno)d} - %(message)s"
@ -129,19 +127,6 @@ def report(config: str) -> None:
) from exc
def get_list(docker_type, all_check: bool = None):
filter_kwargs = {
"filters": {"label": local_metadata},
}
if all_check:
filter_kwargs["all"] = all_check
stop_containers = docker_type.list(**filter_kwargs)
if len(stop_containers) == 0:
filter_kwargs["filters"] = {"label": release}
return docker_type.list(**filter_kwargs)
return stop_containers
@metadata.command()
@click.option("--start", help="Start release Docker containers", is_flag=True)
@click.option("--stop", help="Stop Docker containers (local and release)", is_flag=True)
@ -245,18 +230,19 @@ def docker(start, stop, clean, type, path) -> None:
fg="bright_magenta",
)
elif stop:
for container in get_list(client.containers):
for container in client.containers.list():
if "openmetadata_" in container.name:
logger.info(f"Stopping {container.name}")
container.stop()
elif clean:
logger.info("Removing Containers")
for container in get_list(client.containers, True):
for container in client.containers.list({all: True}):
if "openmetadata_" in container.name:
container.remove(v=True, force=True)
logger.info("Removing Volumes")
for volume in get_list(client.volumes):
volume.remove(force=True)
logger.info("Removing Networks")
for network in get_list(client.networks):
for network in client.networks.list():
if "app_net" in network.name:
network.remove()
except (ImportError, ModuleNotFoundError):
click.secho(