Files
ExoMy_Cuno/docker/run_exomy.sh
T
2026-05-26 08:10:59 +02:00

76 lines
2.5 KiB
Bash

#!/bin/bash
# run_exomy- A script to run containers for dedicated functions of exomy
help_text="Usage: "$0" [MODE] [OPTIONS]
A script to run ExoMy in different configurations
Options:
-a, --autostart Toggles autostart mode on or off
-c, --config Runs the motor configuration of ExoMy
-d, --devel Runs the development mode to change some code of ExoMy
-h, --help Shows this text
"
### Main
# Initialize parameters
container_name="exomy"
image_name="exomy"
# Process parameters
if [ "$1" != "" ]; then
case $1 in
-a | --autostart)
container_name="${container_name}_autostart"
start_command="autostart"
options="--restart always"
;;
-s | --stop_autostart)
docker container stop "${container_name}_autostart"
exit
;;
-c | --config)
container_name="${container_name}_config"
start_command="config"
options="--rm"
;;
-d | --devel)
container_name="${container_name}_devel"
start_command="devel"
options="--restart always"
;;
-h | --help ) echo "$help_text"
exit
;;
* ) echo "ERROR: Not a valid mode!"
echo "$help_text"
exit 1
esac
else
echo "ERROR: You need to specify a mode!"
echo "$help_text"
exit
fi
# Build docker image from Dockerfile in directory
directory=$( dirname "$0" )
docker build -t $image_name $directory
# Stop any of the 3 containers if running
RUNNING_CONTAINERS=$( docker container ls -a -q --filter ancestor=exomy )
if [ -n "$RUNNING_CONTAINERS" ]; then
docker rm -f "$RUNNING_CONTAINERS"
fi
# Run docker container
docker run \
-it \
-v ~/ExoMy_Software:/root/exomy_ws/src/exomy \
-p 8000:8000 \
-p 8080:8080 \
-p 9090:9090 \
--privileged \
${options} \
--name "${container_name}" \
"${image_name}" \
"${start_command}"