github.com/leonlxy/hyperledger@v1.0.0-alpha.0.20170427033203-34922035d248/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            hyperledger/fabric-couchdb
    38          rc=$?
    39          if [[ $rc != 0 ]]
    40            then
    41              echo "Run 'make couchdb' from 'fabric' directory to build fabric-couchdb docker image locally."
    42          fi
    43          ;;
    44      esac
    45      ;;
    46    "stop")
    47      echo "Stopping couchdb container..."
    48      docker stop couchdb
    49      ;;
    50    "status" | *)
    51      docker ps --all --filter name=couchdb --format "{{.Status}}"
    52      ;;
    53  esac