github.com/adnan-c/fabric_e2e_couchdb@v0.6.1-preview.0.20170228180935-21ce6b23cf91/devenv/tools/couchdb (about)

     1  #!/usr/bin/env bash
     2  
     3  couchDbContainerStatus() {
     4    for s in created restarting running paused exited dead ; do
     5      if [ -n "$(docker ps --all --quiet --filter name=couchdb --filter status=$s)" ] ; then
     6        echo $s
     7        return 0
     8      fi
     9    done
    10  }
    11  
    12  case "$1" in
    13    "start")
    14      case "$(couchDbContainerStatus)" in
    15        "created" )
    16          echo "Starting couchdb container..."
    17          docker start couchdb
    18          ;;
    19        "exited" )
    20          echo "Restarting couchdb container..."
    21          docker restart couchdb
    22          ;;
    23        "paused" )
    24          echo "Unpausing couchdb container..."
    25          docker unpause couchdb
    26          ;;
    27        "running" )
    28          echo "couchdb container is already started"
    29          docker ps --filter name=couchdb
    30          ;;
    31        "restarting" | "dead" | * )
    32          # if running, restarting, or dead, just let user deal with error
    33          docker run \
    34            --publish 5984:5984    `# publish port`   \
    35            --detach               `# run as daemon`  \
    36            --name couchdb         `# name container` \
    37            `# map database dir to a host dir`        \
    38            klaemo/couchdb:2.0.0
    39          ;;
    40      esac
    41      ;;
    42    "stop")
    43      echo "Stopping couchdb container..."
    44      docker stop couchdb
    45      ;;
    46    "status" | *)
    47      docker ps --all --filter name=couchdb --format "{{.Status}}"
    48      ;;
    49  esac