get.porter.sh/porter@v1.3.0/scripts/bundle/bundle-linux.sh (about)

     1  #!/usr/bin/env bash
     2  set -euo pipefail
     3  
     4  PORTER_MIRROR=${PORTER_MIRROR:-https://cdn.porter.sh}
     5  PORTER_VERSION=${PORTER_VERSION:-latest}
     6  MONGO_IMAGE_FILE="mongo_image.tar"
     7  MONGO_IMAGE_URL="docker.io/library/mongo:8.0-noble"
     8  BUNDLE_NAME="porter-air-gapped-install-$PORTER_VERSION"
     9  DOWNLOAD_DIR="/tmp/$BUNDLE_NAME"
    10  
    11  PORTER_BINARY_URL=${PORTER_BINARY_URL:-"$PORTER_MIRROR/$PORTER_VERSION/porter-linux-amd64"}
    12  PORTER_SCRIPT_URL=${PORTER_SCRIPT_URL:-"$PORTER_MIRROR/$PORTER_VERSION/install-linux.sh"}
    13  
    14  mkdir -p $DOWNLOAD_DIR
    15  
    16  echo "Pulling MongoDB image..."
    17  docker pull "$MONGO_IMAGE_URL"
    18  echo "Saving MongoDB image to $MONGO_IMAGE_FILE..."
    19  docker save -o "$DOWNLOAD_DIR/$MONGO_IMAGE_FILE" "$MONGO_IMAGE_URL"
    20  
    21  echo "Downloading Porter Install Script from $PORTER_SCRIPT_URL"
    22  curl -fsSLo "$DOWNLOAD_DIR/install-linux.sh" "$PORTER_SCRIPT_URL"
    23  
    24  echo "Downloading Porter Binary from $PORTER_BINARY_URL"
    25  curl -fsSLo "$DOWNLOAD_DIR/porter-linux-amd64" "$PORTER_BINARY_URL" 
    26  
    27  cat << EOF > $DOWNLOAD_DIR/install-bundle.sh 
    28  export PORTER_BINARY_URL="file://\$(realpath ./porter-linux-amd64)" 
    29  export PORTER_SCRIPT_URL="file://\$(realpath ./install-linux.sh)" 
    30  bash install-linux.sh
    31  docker load -i "$MONGO_IMAGE_FILE"
    32  if ! docker ps -q -f name=porter-mongodb-docker-plugin; then
    33    echo "Running MongoDB container..."
    34    docker run --name porter-mongodb-docker-plugin -d -p 27018:27017 -v mongodb_data:/data/db --restart always mongo:8.0-noble
    35  else
    36    echo "MongoDB container is already running."
    37  fi
    38  EOF
    39  
    40  
    41  TAR_FILE="$BUNDLE_NAME.tar.gz"
    42  echo "Creating tarball: $TAR_FILE..."
    43  tar -czvf "$TAR_FILE" -C /tmp "$(basename "$DOWNLOAD_DIR")" 
    44  
    45  echo "Bundle created: $TAR_FILE"
    46  echo "Usage Instructions:"
    47  echo "tar -xzf $TAR_FILE -C ."
    48  echo "cd $BUNDLE_NAME"
    49  echo "bash install-bundle.sh"
    50  
    51  exit 0
    52