#! /bin/bash set -u set -e function start_minio() { cd "$(dirname ${BASH_SOURCE[0]})" AWS_ACCESS="${user:-}" AWS_SECRET="${pass:-}" AWS_PORT="${AWS_PORT:-11000}" AWS_REGION="local" CONTAINER_NAME="watchman-minio" if [ "$(docker ps | grep $CONTAINER_NAME)" == "" ]; then echo "Starting minio..." docker run -d --rm \ -p $AWS_PORT:$AWS_PORT \ -e MINIO_ACCESS_KEY="$AWS_ACCESS" \ -e MINIO_SECRET_KEY="$AWS_SECRET" \ -e MINIO_REGION="$AWS_REGION" \ --name $CONTAINER_NAME \ minio/minio \ server --address ":$AWS_PORT" /data sleep 10 else echo "minio already running" fi keys="$(docker exec $CONTAINER_NAME cat /root/.minio/config.json | grep Key)" STORE_ID="${keys#*: \"}" STORE_ID="${STORE_ID%%\"*}" STORE_LOC="localhost:$AWS_PORT" STORE_SECRET="${keys##*secretKey\": \"}" STORE_SECRET="${STORE_SECRET%%\"*}" export STORE_ID="$STORE_ID" export STORE_SECRET="$STORE_SECRET" export STORE_LOC="$STORE_LOC" export STORE_REGION="$AWS_REGION" echo "Waiting for minio..." skip=5 for((i=0; i<60; i+=skip)); do printf "\tcheck %d..." $((i/skip)) if [ "$(docker ps | grep $CONTAINER_NAME | grep "(healthy)")" != "" ]; then echo "" return fi sleep $skip done echo "\nMinio never healthy" docker logs $CONTAINER_NAME exit 1 } start_minio