diff --git a/lxc1/p0-infrastructure/02_deploy_minio_buckets.sh b/lxc1/p0-infrastructure/02_deploy_minio_buckets.sh index a05f0fc..f1397ce 100644 --- a/lxc1/p0-infrastructure/02_deploy_minio_buckets.sh +++ b/lxc1/p0-infrastructure/02_deploy_minio_buckets.sh @@ -1 +1,35 @@ -docker run --network host --entrypoint /bin/sh minio/mc -c "mc alias set myminio http://localhost:9000 admin ${MINIO_ROOT_PASSWORD}; mc mb myminio/forgejo; mc mb myminio/prometheus; mc mb myminio/backups" \ No newline at end of file +#!/bin/bash + +# 1. Setup variables from your environment +CONTAINER_NAME="minio-node${MINIO_NODE_NUMBER}" +DATA_PATH="/docker/minio/data" +# Example: MINIO_BUCKET_REGISTRY="forgejo prometheus backups" + +echo "Checking S3 Bucket Registry..." + +# 2. Stop the clustered container to prevent file locks/sync conflicts +docker stop $CONTAINER_NAME 2>/dev/null || true + +# 3. Loop through the registry +for BUCKET in ${MINIO_BUCKET_REGISTRY}; do + TARGET_DIR="$DATA_PATH/$BUCKET" + + if [ -d "$TARGET_DIR" ]; then + echo "Bucket '$BUCKET' already exists on host. Skipping." + else + echo "Bucket '$BUCKET' missing. Creating directory..." + # We create it with the correct permissions (MinIO usually runs as 1000) + mkdir -p "$TARGET_DIR" + chown -R 1000:1000 "$TARGET_DIR" + + # Optional: Use a standalone container to 'formalize' the bucket + # if you want MinIO metadata generated immediately + docker run --rm \ + -v "$DATA_PATH":/data \ + alpine:latest sh -c "mkdir -p /data/$BUCKET && chown -R 1000:1000 /data/$BUCKET" + fi +done + +# 4. Restart the real clustered container +echo "Restarting $CONTAINER_NAME..." +docker start $CONTAINER_NAME \ No newline at end of file