Fabric鏡像拉取


腳本說明

腳本改自官方,可以拉取fabric ca/peer/orderer/ccenv/tools等鏡像,我注釋掉了拉取第三方鏡像(zookeeper,kafka,couchdb)的代碼。

腳本內容

創建腳本vi docker_pull_fabric_images.sh。然后復制下面的內容到腳本。

#!/bin/bash
#
# Copyright IBM Corp. All Rights Reserved.
#
# SPDX-License-Identifier: Apache-2.0
#

# Fabric 1.4.0 :e.g. bootstrap.sh 1.4.0 1.4.0 0.4.14 
# Fabric 1.4.1 :e.g. bootstrap.sh 1.4.1 1.4.1 0.4.15 

# if version not passed in, default to latest released version
export VERSION=1.4.1
# if ca version not passed in, default to latest released version
export CA_VERSION=$VERSION
# current version of thirdparty images (couchdb, kafka and zookeeper) released
export THIRDPARTY_IMAGE_VERSION=0.4.15
export MARCH=$(uname -m)

printHelp() {
  echo "Usage: docker_pull_fabric_images.sh [<version>] [<ca_version>] [<thirdparty_version>][-d]"
  echo
  echo "-d - bypass docker image download"
  echo
  echo "e.g. docker_pull_fabric_images.sh 1.4.0 1.4.0 0.4.14"
  echo "would download docker images and binaries for version 1.4.0 (fabric) 1.4.0 (fabric-ca) 0.4.14 (thirdparty)"
}

dockerFabricPull() {
  local FABRIC_TAG=$1
  for IMAGES in peer orderer ccenv tools; do
      echo "==> FABRIC IMAGE: $IMAGES"
      echo
      docker pull hyperledger/fabric-$IMAGES:$FABRIC_TAG
      # docker tag hyperledger/fabric-$IMAGES:$FABRIC_TAG hyperledger/fabric-$IMAGES
  done
}

dockerThirdPartyImagesPull() {
  local THIRDPARTY_TAG=$1
  for IMAGES in couchdb kafka zookeeper; do
      echo "==> THIRDPARTY DOCKER IMAGE: $IMAGES"
      echo
      docker pull hyperledger/fabric-$IMAGES:$THIRDPARTY_TAG
      # docker tag hyperledger/fabric-$IMAGES:$THIRDPARTY_TAG hyperledger/fabric-$IMAGES
  done
}

dockerCaPull() {
      local CA_TAG=$1
      echo "==> FABRIC CA IMAGE"
      echo
      docker pull hyperledger/fabric-ca:$CA_TAG
      # docker tag hyperledger/fabric-ca:$CA_TAG hyperledger/fabric-ca
}

dockerInstall() {
  which docker >& /dev/null
  NODOCKER=$?
  if [ "${NODOCKER}" == 0 ]; then
	  echo "===> Pulling fabric Images"
	  dockerFabricPull ${FABRIC_TAG}
	  echo "===> Pulling fabric ca Image"
	  dockerCaPull ${CA_TAG}
          # 不拉取三方鏡像
	  # echo "===> Pulling thirdparty docker images"
	  # dockerThirdPartyImagesPull ${THIRDPARTY_TAG}
	  echo
	  echo "===> List out hyperledger docker images"
	  docker images | grep hyperledger*
  else
    echo "========================================================="
    echo "Docker not installed, bypassing download of Fabric images"
    echo "========================================================="
  fi
}

DOCKER=true
SAMPLES=true

# Parse commandline args pull out
# version and/or ca-version strings first
if echo $1 | grep -q '\d'; then
  VERSION=$1;shift
  if echo $1 | grep -q '\d'; then
    CA_VERSION=$1;shift
    if echo $1 | grep -q '\d'; then
      THIRDPARTY_IMAGE_VERSION=$1;shift
    fi
  fi
fi

# prior to 1.1.0 architecture was determined by uname -m
if [[ $VERSION =~ ^1\.[0]\.* ]]; then
  export FABRIC_TAG=${MARCH}-${VERSION}
  export CA_TAG=${MARCH}-${CA_VERSION}
  export THIRDPARTY_TAG=${MARCH}-${THIRDPARTY_IMAGE_VERSION}
else
  # starting with 1.2.0, multi-arch images will be default
  # 從1.2.0版本開始,鏡像就使用默認的版本(當前文件中定義的)
  : ${FABRIC_TAG:="$VERSION"}
  : ${CA_TAG:="$CA_VERSION"}
  : ${THIRDPARTY_TAG:="$THIRDPARTY_IMAGE_VERSION"}
fi

# then parse opts
while getopts "h?db" opt; do
  case "$opt" in
    h|\?)
      printHelp
      exit 0
    ;;
    d)  DOCKER=false
    ;;
  esac
done

if [ "$DOCKER" == "true" ]; then
  echo
  echo "Installing Hyperledger Fabric docker images"
  echo
  dockerInstall
fi

執行腳本

# 注意:給腳本添加執行權限
# 執行shell可能報錯
# 執行.sh腳本時出現$’\r’: 未找到命令
# 是因為腳本在windows下編輯過,windows下的換行帶有‘\r’而uninx或者linux下的換行是‘\n’
# 解決辦法-->安裝dos2unix:
yum install -y dos2unix
# 然后執行命令轉換腳本格式:
dos2unix docker_pull_fabric_images.sh.sh
# 腳本賦權
chmod +x docker_pull_fabric_images.sh.sh
# 執行腳本
./docker_pull_fabric_images.sh.sh 1.4.1


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM