Доброе время суток,
Я написал простой скрипт для управления контейнерами внутри моего приложения, однако всякий раз, когда я нажимаю клавиши со стрелками, они выдают что-то вроде [[A
или других символов. Не могли бы вы помочь мне решить проблему?
Пример команды: ./service.sh app shell
, которая откроет оболочку моего приложения Laravel внутри контейнера Docker.
#!/usr/bin/env bash
#application=$(basename "$PWD")
application="plexmediamanager"
services=("app", "roadrunner", "scheduler", "frontend", "nginx", "redis", "database", "queue", "torrent", "jackett", "traefik")
actions=("start", "stop", "restart", "shell", "rebuild")
if [[ ! "${services[@]}" =~ "${1}" ]]; then
echo "Unknown service: ${1}"
printf -v servicesString "%s" "${services[@]}"
echo "Available services: ${servicesString}"
exit 0
fi
if [[ ! "${actions[@]}" =~ "${2}" ]]; then
echo "Unknown action: ${2}"
echo "Available actions: start|stop|restart|shell|rebuild"
exit 0
fi
case "$2" in
"start")
docker-compose start $1
;;
"stop")
docker-compose stop $1
;;
"restart")
docker-compose restart $1
;;
"shell")
docker exec -it "${application}_${1}" /bin/sh
;;
"rebuild")
docker-compose stop $1
docker-compose build $1
docker-compose start $1
;;
esac