From 1d64069b545a7ec77f10e61ac48722f5ac8a8720 Mon Sep 17 00:00:00 2001 From: jurgenhaas <juergen@paragon-es.de> Date: Thu, 21 Jan 2021 15:49:18 +0100 Subject: [PATCH] docker/l3d#84 Allow to delete multiple projects at once --- run/scripts/delete | 37 +++++++++++++++++++++++++------------ 1 file changed, 25 insertions(+), 12 deletions(-) diff --git a/run/scripts/delete b/run/scripts/delete index 09526c0..d187b45 100755 --- a/run/scripts/delete +++ b/run/scripts/delete @@ -1,14 +1,14 @@ #!/bin/bash function removecontainer() { - docker container ls --all -q -f name=^${PROJECT}_ > /tmp/reset.lst + docker container ls --all -q -f name=^${PROJECT}_ >/tmp/reset.lst IDS=$(cat /tmp/reset.lst) if [[ ! -n ${IDS} ]]; then echo "No containers to be removed." return fi echo "Deleting containers ..." - for CONTAINERID in `cat /tmp/reset.lst`; do + for CONTAINERID in $(cat /tmp/reset.lst); do docker rm -f $CONTAINERID done rm /tmp/reset.lst @@ -25,21 +25,34 @@ function removenetwork() { if [[ -f "docker-compose.yml" ]]; then sed -i -e "/- ${PROJECT}$/d" docker-compose.yml sed -i -e "/^ ${PROJECT}:$/{N;d;}" docker-compose.yml - docker-compose stop - docker rm -f traefik_traefik_1 - docker network rm traefik_${PROJECT} - docker-compose --project-name traefik up -d + NETWORKS="${NETWORKS} traefik_${PROJECT}" fi } +function rebuildtraefik() { + cd ${HOME}/.traefik || return + if [[ -f "docker-compose.yml" ]]; then + docker-compose --project-name traefik up -d --remove-orphans + fi + if [[ "$NETWORKS" == "" ]]; then + return + fi + docker network rm ${NETWORKS} +} + if [[ -n $1 ]]; then - PROJECT=$1 + NETWORKS="" + while [[ -n $1 ]]; do + PROJECT=$1 + read -p "Are you sure you want to remove the project ${PROJECT} with all containers and network? Type YES to confirm: " CONFIRM + if [[ "$CONFIRM" == YES ]]; then + removecontainer + removenetwork + fi + shift + done + rebuildtraefik else echo "Please provide the project name you want to delete." exit fi -read -p "Are you sure you want to remove the project ${PROJECT} with all containers and network? Type YES to confirm: " CONFIRM -if [[ "$CONFIRM" == YES ]]; then - removecontainer - removenetwork -fi -- GitLab