From 676e76ab9dba77686ff5727c9bf0b9e8df4519ca Mon Sep 17 00:00:00 2001 From: Ground-Zerro Date: Sun, 1 Dec 2024 17:26:56 +1100 Subject: [PATCH] docker --- README.md | 10 +++++++ dm-docker.sh | 73 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 83 insertions(+) create mode 100644 dm-docker.sh diff --git a/README.md b/README.md index b0c63dd..77ce43a 100644 --- a/README.md +++ b/README.md @@ -2,6 +2,7 @@
Что нового (нажать, чтобы открыть) +- Запуск в докере. Запрос [Запрос @andrejs82git, реализация @MrEagle123](https://github.com/Ground-Zerro/DomainMapper/issues/21) - Опция в config.ini: не добавлять comment="%SERVICE_NAME%" при сохранении IP-адресов в mikrotik формате. [Запрос @ITNetSystem](https://github.com/Ground-Zerro/DomainMapper/issues/45) - Изменена кодиовка файла результатов на UTF-8 без BOM. [Запрос @Savanture](https://github.com/Ground-Zerro/DomainMapper/issues/54) - [Конвертер маршутов](https://github.com/Ground-Zerro/DomainMapper/tree/main/utilities) как отдельная утилита. [Запрос @Andrey999r](https://github.com/Ground-Zerro/DomainMapper/discussions/43) @@ -146,6 +147,15 @@ arena.openai.com
+
+ Запуск в Docker (нажать, чтобы открыть) + +``` +curl -L -s "https://raw.githubusercontent.com/Ground-Zerro/DomainMapper/refs/heads/main/dm-docker.sh" > /tmp/dm-docker.sh && chmod +x /tmp/dm-docker.sh && sh /tmp/dm-docker.sh +``` +
+ +
Для пользователей Windows, не знающих "как", но кому "очень нужно" (нажать, чтобы открыть) diff --git a/dm-docker.sh b/dm-docker.sh new file mode 100644 index 0000000..3946a77 --- /dev/null +++ b/dm-docker.sh @@ -0,0 +1,73 @@ +#!/bin/bash + +# Путь к файлу, который проверим на наличие +FILE="./domain-ip-resolve.txt" +DOCKER_IMAGE="domainmapper" +DOCKER_CONTAINER="domainmapper_container" + +# Обновление списка пакетов и установка git +echo "Обновляем список пакетов и устанавливаем git..." +sudo apt update +sudo apt install -y git + +# Установка Docker, если он не установлен +if ! command -v docker &> /dev/null +then + echo "Docker не найден. Устанавливаем Docker..." + curl -fsSL https://get.docker.com -o get-docker.sh + sudo sh ./get-docker.sh +else + echo "Docker уже установлен." +fi + +# Клонирование репозитория, если папка DomainMapper не существует +if [ ! -d "DomainMapper" ]; then + echo "Клонируем репозиторий DomainMapper..." + git clone https://github.com/Ground-Zerro/DomainMapper.git +else + echo "Репозиторий уже клонирован." +fi + +# Проверяем наличие Dockerfile и создаем его, если он отсутствует +if [ ! -f "Dockerfile" ]; then + echo "Создаём Dockerfile..." + cat < Dockerfile +FROM ubuntu:jammy +WORKDIR /app +ADD ./DomainMapper /app +RUN apt-get update -y +RUN apt-get install python3-pip -y +RUN pip3 install -r requirements.txt +CMD ["python3", "main.py"] +EOF +else + echo "Dockerfile уже существует." +fi + +# Сборка Docker образа, если образ ещё не был собран +if ! sudo docker images | grep -q "$DOCKER_IMAGE"; then + echo "Собираем Docker образ..." + sudo docker build -t $DOCKER_IMAGE . +else + echo "Docker образ уже существует." +fi + +# Проверяем, существует ли уже контейнер с данным именем +if sudo docker ps -a --filter "name=$DOCKER_CONTAINER" | grep -q "$DOCKER_CONTAINER"; then + # Останавливаем и удаляем старый контейнер, если он существует + echo "Контейнер с именем $DOCKER_CONTAINER уже существует. Останавливаем и удаляем его..." + sudo docker stop $DOCKER_CONTAINER + sudo docker rm $DOCKER_CONTAINER +fi + +# Запуск Docker контейнера +echo "Запускаем Docker контейнер..." +sudo docker run -d --name $DOCKER_CONTAINER -v $FILE:/app/domain-ip-resolve.txt -it $DOCKER_IMAGE + +# Сообщение для повторного запуска +echo "Для повторного запуска используйте команду:" +echo "sudo docker run -d --name $DOCKER_CONTAINER -v $FILE:/app/domain-ip-resolve.txt -it $DOCKER_IMAGE" + +# Удаление самого скрипта +echo "Скрипт завершен, удаляю себя..." +rm -- "$0"