github.com/NpoolPlatform/chain-middleware@v0.0.0-20240228100535-eb1bcf896eb9/hack/generate-docker-image.sh (about)

     1  #!/usr/bin/env bash
     2  
     3  set -o errexit
     4  set -o nounset
     5  set -o pipefail
     6  
     7  PLATFORM=linux/amd64
     8  OUTPUT=./output
     9  
    10  pkg=github.com/NpoolPlatform/go-service-framework/pkg/version
    11  
    12  OS="${PLATFORM%/*}"
    13  ARCH=$(basename "$PLATFORM")
    14  
    15  if git_status=$(git status --porcelain --untracked=no 2>/dev/null) && [[ -z "${git_status}" ]]; then
    16    git_tree_state=clean
    17  fi
    18  
    19  set +e
    20  ## Get tag we're on
    21  # version=`git describe --tags --abbrev=0`
    22  version=`git describe --exact-match --tags $(git log -n1 --pretty='%h')`
    23  if [ ! $? -eq 0 ]; then
    24    branch=`git rev-parse --abbrev-ref HEAD | grep -v ^HEAD$ || git rev-parse HEAD`
    25    if [ "x$branch" == "xmaster" ]; then
    26      version=latest
    27    else
    28      version=`echo $branch | awk -F '/' '{print $2}'`
    29    fi
    30    ## Do we need commit ?
    31    # commit=`git rev-parse HEAD`
    32    # version=$version-$commit
    33  fi
    34  set -e
    35  
    36  service_name=$1
    37  registry=uhub.service.ucloud.cn
    38  if [ "x" != $2 ]; then
    39    registry=$2
    40  fi
    41  
    42  echo "Generate docker image for $PLATFORM -- $version"
    43  if [ ! -f $OUTPUT/$PLATFORM/$service_name ]; then
    44      echo "Run 'make $service_name' before you generate its image"
    45      exit 1
    46  fi
    47  
    48  mkdir -p $OUTPUT/.${service_name}.tmp
    49  cp ./cmd/$service_name/Dockerfile $OUTPUT/.${service_name}.tmp
    50  cp ./cmd/$service_name/*.yaml $OUTPUT/.${service_name}.tmp
    51  cp $OUTPUT/$PLATFORM/$service_name $OUTPUT/.${service_name}.tmp
    52  cd $OUTPUT/.${service_name}.tmp
    53  
    54  user=`whoami`
    55  if [ "$user" == "root" ]; then
    56    docker build -t $registry/entropypool/$service_name:$version .
    57  else
    58    sudo docker build -t $registry/entropypool/$service_name:$version .
    59  fi