Files
DomainMapper/dm-docker.sh
2024-12-01 20:12:57 +11:00

79 lines
3.0 KiB
Bash
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/bin/bash
# Функция для проверки наличия Docker
check_docker() {
if command -v docker >/dev/null 2>&1; then
echo "Docker уже установлен. Версия: $(docker --version)"
return 0 # Docker установлен
else
echo "Docker не найден. Устанавливаем Docker..."
return 1 # Docker не установлен
fi
}
# Обновляем список пакетов и устанавливаем git, если его нет
echo "Обновляем список пакетов и устанавливаем git..."
apt update && apt install -y git
# Проверяем и устанавливаем Docker, если его нет
if ! check_docker; then
curl -fsSL https://get.docker.com -o get-docker.sh
sh ./get-docker.sh
rm get-docker.sh # Удаляем установочный скрипт после установки
fi
# Клонируем репозиторий, если его нет
if [ ! -d "./DomainMapper" ]; then
echo "Клонируем репозиторий DomainMapper..."
git clone https://github.com/Ground-Zerro/DomainMapper.git
else
echo "Репозиторий DomainMapper уже клонирован."
fi
# Создаём Dockerfile с установкой Python 3.12
echo "Создаём Dockerfile..."
cat > Dockerfile <<EOL
FROM ubuntu:jammy
# Устанавливаем Python 3.12 и необходимые пакеты
RUN apt-get update && \
apt-get install -y software-properties-common && \
add-apt-repository -y ppa:deadsnakes/ppa && \
apt-get update && \
apt-get install -y python3.12 python3.12-venv python3.12-distutils && \
rm -rf /var/lib/apt/lists/*
# Устанавливаем pip для Python 3.12
RUN curl -sS https://bootstrap.pypa.io/get-pip.py | python3.12
WORKDIR /app
ADD ./DomainMapper /app
# Устанавливаем зависимости проекта
RUN python3.12 -m pip install --upgrade pip && \
python3.12 -m pip install -r requirements.txt
CMD ["python3.12", "main.py"]
EOL
# Собираем Docker образ, если его нет
if ! docker image inspect domainmapper >/dev/null 2>&1; then
echo "Собираем Docker образ..."
docker build -t domainmapper .
else
echo "Docker образ domainmapper уже существует."
fi
# Проверяем наличие контейнера и запускаем его
if docker ps -a | grep -q domainmapper_container; then
echo "Контейнер уже существует. Перезапускаем его..."
docker rm -f domainmapper_container # Удаляем старый контейнер
fi
echo "Запускаем Docker контейнер..."
docker run --name domainmapper_container -v ./domain-ip-resolve.txt:/app/domain-ip-resolve.txt -it domainmapper
# Удаляем скрипт после выполнения
echo "Скрипт завершен, удаляю себя..."
rm -- "$0"