2024-06-29 03:37:13 +02:00

118 lines
2.5 KiB
Bash

TAG=develop
CONTAINER=dasmoorhuhn/atc-mithermometer-gateway:$TAG
CONTAINER_NAME=ATC_MiThermometer_Gateway
VOLUME=YOUR_VOLUME
D=""
TIME_ZONE="Europe/Berlin"
INTERACTIVE=false
BUILD=false
API=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"
docker_run() {
sudo killall -9 bluetoothd > /dev/null 2>&1
echo Killing old container...
docker stop $CONTAINER_NAME
docker container rm $CONTAINER_NAME > /dev/null 2>&1
COMMAND="docker run $D"
COMMAND="$COMMAND --cap-add=SYS_ADMIN"
COMMAND="$COMMAND --cap-add=NET_ADMIN"
COMMAND="$COMMAND --net=host"
COMMAND="$COMMAND --env TZ=$TIME_ZONE"
COMMAND="$COMMAND --env API=$API"
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
echo $COMMAND
echo Start container...
echo
$COMMAND $CONTAINER
docker container rm $CONTAINER_NAME > /dev/null 2>&1
}
while [ "$1" != "" ]; do
case $1 in
-d )
D="-d"
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