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