48 lines
1.8 KiB
Bash
48 lines
1.8 KiB
Bash
#!/bin/bash
|
||
|
||
# Установите переменные с именами контейнеров и портами
|
||
nextcloud_container="app-server"
|
||
nginx_container="nginx-server"
|
||
onlyoffice_container="onlyoffice-document-server"
|
||
|
||
# Порты, используемые в Docker Compose файле
|
||
nextcloud_port=888 # Порт для Nextcloud
|
||
nginx_http_port=8080 # HTTP порт для NGINX
|
||
nginx_https_port=444 # HTTPS порт для NGINX
|
||
|
||
# Проверка наличия Docker
|
||
if ! command -v docker &> /dev/null
|
||
then
|
||
echo "Docker не установлен. Пожалуйста, установите Docker перед продолжением."
|
||
exit 1
|
||
fi
|
||
|
||
# Проверка наличия Docker Compose
|
||
if ! command -v docker-compose &> /dev/null
|
||
then
|
||
echo "Docker Compose не установлен. Пожалуйста, установите Docker Compose перед продолжением."
|
||
exit 1
|
||
fi
|
||
|
||
# Проверка наличия и статуса контейнеров
|
||
containers=($nextcloud_container $nginx_container $onlyoffice_container)
|
||
for container in "${containers[@]}"
|
||
do
|
||
if [ "$(docker ps -q -f name=$container)" ]; then
|
||
echo "Контейнер $container уже запущен. Проверьте и остановите его при необходимости."
|
||
exit 1
|
||
fi
|
||
done
|
||
|
||
# Проверка доступности портов
|
||
ports=($nextcloud_port $nginx_http_port $nginx_https_port)
|
||
for port in "${ports[@]}"
|
||
do
|
||
if lsof -i:$port > /dev/null ; then
|
||
echo "Порт $port занят. Проверьте и освободите его перед запуском."
|
||
exit 1
|
||
fi
|
||
done
|
||
|
||
echo "Все предварительные проверки пройдены. Можете запускать основной скрипт."
|