Open ron-tayler opened 13 hours ago
@JB-SelfCompany Привет. Накидал не большой DockerFile для данного проекта.
# Используем официальный образ Ubuntu
FROM ubuntu:24.04
# Устанавливаем рабочую директорию
WORKDIR /app
# Устанавливаем необходимые системные пакеты и Python 3.11
# В одном RUN шаге выполняем все действия, чтобы минимизировать слои и кеши
RUN apt-get update -qq && apt-get install -y \
software-properties-common \
python3.11 \
python3.11-venv \
python3.11-dev \
qrencode \
jq \
net-tools \
iptables \
resolvconf \
git \
needrestart \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/* # Удаляем кеши apt
# Устанавливаем pip и обновляем его
RUN python3.11 -m pip install --upgrade pip
# Клонируем репозиторий
RUN git clone https://github.com/JB-SelfCompany/awg-docker-bot.git /app/awg-docker-bot
# Переходим в каталог репозитория и создаём виртуальное окружение
WORKDIR /app/awg-docker-bot
RUN python3.11 -m venv myenv && \
source myenv/bin/activate && \
pip install -r requirements.txt && \
# Удаляем кеши pip, чтобы уменьшить размер образа
rm -rf /root/.cache/pip
# Устанавливаем права на выполнение для всех скриптов
RUN find . -type f -name "*.sh" -exec chmod +x {} \;
# Запуск основного процесса (бота) как команду Docker
CMD ["/app/awg-docker-bot/myenv/bin/python3.11", "/app/awg-docker-bot/awg/bot_manager.py"]
Либо более облегчённый образ.
# Используем более легкий образ, основанный на Debian и уже содержащий Python
FROM python:3.11-slim
# Рабочая директория
WORKDIR /app
# Устанавливаем системные зависимости
RUN apt-get update -qq && apt-get install -y \
qrencode \
jq \
net-tools \
iptables \
resolvconf \
git \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/* # Удаляем кеши apt
# Клонируем репозиторий
RUN git clone https://github.com/JB-SelfCompany/awg-docker-bot.git /app/awg-docker-bot
# Переходим в каталог репозитория и создаём виртуальное окружение
WORKDIR /app/awg-docker-bot
RUN python3.11 -m venv myenv && \
source myenv/bin/activate && \
pip install -r requirements.txt && \
rm -rf /root/.cache/pip
# Устанавливаем права на выполнение для всех скриптов
RUN find . -type f -name "*.sh" -exec chmod +x {} \;
# Запуск основного процесса (бота) как команду Docker
CMD ["/app/awg-docker-bot/myenv/bin/python3.11", "/app/awg-docker-bot/awg/bot_manager.py"]
Единственная трудность которая может возникнуть это момент подкладывания токена бота, можно рассмотреть вариант использования .env (@ron-tayler Может по лучше об этом рассказать)
Duplicate of #4
Единственная трудность которая может возникнуть это момент подкладывания токена бота, можно рассмотреть вариант использования .env (@ron-tayler Может по лучше об этом рассказать)
Тут скорее не .env файл, а просто environment переменные. Файл .env - это обычно только при локальной разработке
Сам столкнулся и у других видел. В момент установки кто-то сидит на VPN и отваливается SSH соединение что ломает процесс установки. Также проблемы с точной версией Python.
Предложение: Я заметил что управление AWG происходит через Docker Exec. Если всё приложение ставить не в систему а запаковать в Docker Image с точными версиями Python и т.д. то проблем с системой не будет. Я управлять другими Docker контейнерами можно если в контейнер с ботом примонтировать Docker: