github.com/sijibomii/docker@v0.0.0-20231230191044-5cf6ca554647/hack/make/install-script (about)

     1  #!/bin/bash
     2  set -e
     3  
     4  # This script modifies the install.sh script for domains and keys other than
     5  # those used by the primary opensource releases.
     6  #
     7  # You can provide `url`, `yum_url`, `apt_url` and optionally `gpg_fingerprint`
     8  # or `GPG_KEYID` as environment variables, or the defaults for open source are used.
     9  #
    10  # The lower-case variables are substituted into install.sh.
    11  #
    12  # gpg_fingerprint and GPG_KEYID are optional, defaulting to the opensource release
    13  # key ("releasedocker"). Other GPG_KEYIDs will require you to mount a volume with
    14  # the correct contents to /root/.gnupg.
    15  #
    16  # It outputs the modified `install.sh` file to $DOCKER_RELEASE_DIR (default: $DEST)
    17  #
    18  # Example usage:
    19  #
    20  # docker run \
    21  # --rm \
    22  # --privileged \
    23  # -e "GPG_KEYID=deadbeef" \
    24  # -e "GNUPGHOME=/root/.gnupg" \
    25  # -v $HOME/.gnupg:/root/.gnupg \
    26  # -v $(pwd):/go/src/github.com/docker/docker/bundles \
    27  # "$IMAGE_DOCKER" \
    28  # hack/make.sh install-script
    29  
    30  : ${DOCKER_RELEASE_DIR:=$DEST}
    31  : ${GPG_KEYID:=releasedocker}
    32  
    33  DEFAULT_URL="https://get.docker.com/"
    34  DEFAULT_APT_URL="https://apt.dockerproject.org"
    35  DEFAULT_YUM_URL="https://yum.dockerproject.org"
    36  DEFAULT_GPG_FINGERPRINT="58118E89F3A912897C070ADBF76221572C52609D"
    37  
    38  : ${url:=$DEFAULT_URL}
    39  : ${apt_url:=$DEFAULT_APT_URL}
    40  : ${yum_url:=$DEFAULT_YUM_URL}
    41  if [[ "$GPG_KEYID" == "releasedocker" ]] ; then
    42  	: ${gpg_fingerprint:=$DEFAULT_GPG_FINGERPRINT}
    43  fi
    44  
    45  DEST_FILE="$DOCKER_RELEASE_DIR/install.sh"
    46  
    47  bundle_install_script() {
    48  	mkdir -p "$DOCKER_RELEASE_DIR"
    49  
    50  	if [[ -z "$gpg_fingerprint" ]] ; then
    51  		# NOTE: if no key matching key is in /root/.gnupg, this will fail
    52  		gpg_fingerprint=$(gpg --with-fingerprint -k "$GPG_KEYID" | grep "Key fingerprint" | awk -F "=" '{print $2};' | tr -d ' ')
    53  	fi
    54  
    55  	cp hack/install.sh "$DEST_FILE"
    56  	sed -i.bak 's#^url=".*"$#url="'"$url"'"#' "$DEST_FILE"
    57  	sed -i.bak 's#^apt_url=".*"$#apt_url="'"$apt_url"'"#' "$DEST_FILE"
    58  	sed -i.bak 's#^yum_url=".*"$#yum_url="'"$yum_url"'"#' "$DEST_FILE"
    59  	sed -i.bak 's#^gpg_fingerprint=".*"$#gpg_fingerprint="'"$gpg_fingerprint"'"#' "$DEST_FILE"
    60  	rm "${DEST_FILE}.bak"
    61  }
    62  
    63  bundle_install_script