Skip to content
Snippets Groups Projects
delete 1.18 KiB
Newer Older
  • Learn to ignore specific revisions
  • #!/bin/bash
    
    function removecontainer() {
      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
        docker rm -f $CONTAINERID
      done
      rm /tmp/reset.lst
    }
    
    function removenetwork() {
      ID=$(docker network ls -q -f name=traefik_${PROJECT})
      if [[ ! -n ${ID} ]]; then
        echo "No network to be removed."
        return
      fi
      echo "Deleting network ..."
      cd ${HOME}/.traefik || return
    
      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
    
    }
    
    if [[ -n $1 ]]; then
      PROJECT=$1
    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