#!/bin/bash # 1. Capture inputs from arguments # Usage: bash provision-minio.sh "${MINIO_NODE_NUMBER}" "${MINIO_BUCKET_REGISTRY}" NODE_NUM=$1 BUCKET_LIST=$2 DATA_PATH="/docker/minio/data" # Validation if [ -z "$NODE_NUM" ] || [ -z "$BUCKET_LIST" ]; then echo "ERROR: Missing arguments." echo "Usage: bash provision-minio.sh [node_number] [bucket_list]" exit 1 fi CONTAINER_NAME="minio-node${NODE_NUM}" echo "--- S3 Provisioning Started for ${CONTAINER_NAME} ---" # 2. Stop the clustered container to avoid file locks during folder creation echo "Stopping ${CONTAINER_NAME}..." docker stop "${CONTAINER_NAME}" 2>/dev/null || true # 3. Create the directories # We split the space-separated list into a loop for BUCKET in $BUCKET_LIST; do TARGET_DIR="$DATA_PATH/$BUCKET" if [ -d "$TARGET_DIR" ]; then echo "OK: Bucket '$BUCKET' exists." else echo "NEW: Creating bucket directory '$BUCKET'..." mkdir -p "$TARGET_DIR" # Ensure the MinIO user (usually 1000) owns the folder chown -R 1000:1000 "$TARGET_DIR" fi done # 4. Restart the real container echo "Restarting ${CONTAINER_NAME}..." docker start "${CONTAINER_NAME}" echo "--- Provisioning Complete ---"