140 lines
2.9 KiB
Bash
140 lines
2.9 KiB
Bash
TAG="develop"
|
|
CONTAINER="dasmoorhuhn/atc-mithermometer-gateway"
|
|
CONTAINER_NAME="ATC_MiThermometer_Gateway"
|
|
VOLUME=YOUR_VOLUME
|
|
|
|
BACKGROUND=""
|
|
TIME_ZONE=""
|
|
INTERACTIVE=false
|
|
BUILD=false
|
|
API=false
|
|
DEBUG=false
|
|
LOOP="0"
|
|
TIMEOUT="0"
|
|
|
|
HELP="USAGE: sh run_docker.sh [OPTIONS] \n
|
|
[ -d ] Run in Backgrund \n
|
|
[ -t | --tag ] Set a docker tag \n
|
|
[ -b | --build ] Build the image before running the container \n
|
|
[ -l | --loop ] Start the gateway in looping mode. e.g.: --loop 40 will set the interval of the loop to 40s. Default is single run mode \n
|
|
[ -a | --api ] Start with the API \n
|
|
[ -tz | --timezone ] Set the timezone. Default is Europe/Berlin \n
|
|
[ -to | --timeout ] Set the timeout for the bluetooth scan. default is 20s \n
|
|
[ -h | --help ] Get this dialog \n
|
|
[ --debug ] Set into debug mode"
|
|
|
|
docker_run() {
|
|
sudo killall -9 bluetoothd > /dev/null 2>&1
|
|
echo Killing old container...
|
|
docker stop $CONTAINER_NAME > /dev/null 2>&1
|
|
docker container rm $CONTAINER_NAME > /dev/null 2>&1
|
|
|
|
COMMAND="docker run $BACKGROUND"
|
|
COMMAND="$COMMAND --cap-add=SYS_ADMIN"
|
|
COMMAND="$COMMAND --cap-add=NET_ADMIN"
|
|
COMMAND="$COMMAND --net=host"
|
|
COMMAND="$COMMAND --name=$CONTAINER_NAME"
|
|
COMMAND="$COMMAND --restart=on-failure"
|
|
COMMAND="$COMMAND --volume=/var/run/dbus/:/var/run/dbus/"
|
|
COMMAND="$COMMAND --volume=$VOLUME:/src/data"
|
|
|
|
if [ "$INTERACTIVE" = true ]; then
|
|
COMMAND="$COMMAND --interactive"
|
|
COMMAND="$COMMAND --tty"
|
|
COMMAND="$COMMAND --attach=stdout"
|
|
COMMAND="$COMMAND --attach=stdin"
|
|
fi
|
|
|
|
if [ "$LOOP" != "0" ]; then
|
|
COMMAND="$COMMAND --env LOOP=$LOOP"
|
|
fi
|
|
|
|
if [ "$TIMEOUT" != "0" ]; then
|
|
COMMAND="$COMMAND --env TIMEOUT=$TIMEOUT"
|
|
fi
|
|
|
|
if [ "$BUILD" = true ]; then
|
|
sh build_docker.sh --tag $TAG
|
|
fi
|
|
|
|
if [ "$TIME_ZONE" != "" ]; then
|
|
COMMAND="$COMMAND --env TZ=$TIME_ZONE"
|
|
fi
|
|
|
|
if [ "$API" != false ]; then
|
|
COMMAND="$COMMAND --env API=$API"
|
|
fi
|
|
|
|
if [ "$DEBUG" = true ]; then
|
|
COMMAND="$COMMAND --env DEBUG=$DEBUG"
|
|
COMMAND="$COMMAND $CONTAINER:$TAG"
|
|
echo
|
|
echo $COMMAND
|
|
echo
|
|
echo DEBUG MODE
|
|
else
|
|
COMMAND="$COMMAND $CONTAINER:$TAG"
|
|
fi
|
|
|
|
echo Start container...
|
|
echo
|
|
$COMMAND
|
|
|
|
docker container rm $CONTAINER_NAME > /dev/null 2>&1
|
|
}
|
|
|
|
while [ "$1" != "" ]; do
|
|
case $1 in
|
|
-d )
|
|
BACKGROUND="-d"
|
|
shift
|
|
;;
|
|
--debug )
|
|
DEBUG=true
|
|
shift
|
|
;;
|
|
-a | --api)
|
|
API=true
|
|
shift
|
|
;;
|
|
-b | --build )
|
|
BUILD=true
|
|
shift
|
|
;;
|
|
-tz | --timezone )
|
|
shift
|
|
TIME_ZONE=$1
|
|
shift
|
|
;;
|
|
-to | --timeout )
|
|
shift
|
|
TIMEOUT=$1
|
|
shift
|
|
;;
|
|
-t | --tag )
|
|
shift
|
|
TAG=$1
|
|
shift
|
|
;;
|
|
-l | --loop )
|
|
shift
|
|
LOOP=$1
|
|
shift
|
|
;;
|
|
-i | --interactive )
|
|
INTERACTIVE=true
|
|
shift
|
|
;;
|
|
-h | --help )
|
|
echo $HELP
|
|
exit
|
|
;;
|
|
* )
|
|
echo $HELP
|
|
exit 1
|
|
esac
|
|
done
|
|
|
|
docker_run
|
|
|