watchman/server/start.minio

55 lines
1.4 KiB
Bash
Executable File

#! /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