diff --git a/.dockerignore b/.dockerignore index fbf7a02..1148a71 100644 --- a/.dockerignore +++ b/.dockerignore @@ -1,28 +1,20 @@ -# Исключаем файлы Git .git .gitignore -# Исключаем каталоги виртуальных окружений venv/ env/ ENV/ -# Исключаем кешированные файлы Python __pycache__/ *.py[cod] *$py.class -# Исключаем файлы сборки build/ dist/ -# Исключаем конфигурационные файлы IDE .vscode/ .idea/ -# Исключаем системные файлы .DS_Store -# Не включаем .env с чувствительными данными, -# т.к. переменные передаются через переменные окружения контейнера .env diff --git a/Dockerfile b/Dockerfile index c2c331f..b9e799f 100644 --- a/Dockerfile +++ b/Dockerfile @@ -11,5 +11,4 @@ COPY MusicBot /app/MusicBot ENV PYTHONPATH=/app -# Команда для запуска бота CMD ["python", "./MusicBot/main.py"] diff --git a/README.md b/README.md index 973b5de..6683935 100644 --- a/README.md +++ b/README.md @@ -77,6 +77,72 @@ DEBUG='False' # Включение DEBUG логов (True/False) Запустите бота (`python ./MusicBot/main.py`). +## Запуск в Docker + +Возможен запуск как из командной строки, так и с помощью docker-compose. + +### docker cli + +>[!NOTE] +>При этом методе запуска вам необходимо самостоятельно установить MongoDB и указать адресс сервера в команде запуска. + +```bash +docker run -d \ + --name yandex-music-discord-bot \ + --restart unless-stopped \ + -e TOKEN=XXXXXX \ + -e EXPLICIT_EID=1325879701117472869 \ + -e DEBUG=False \ + -e MONGO_URI="mongodb://mongodb:27017" \ + deadcxap/yandexmusicdiscordbot:latest +``` + +### docker-compose (рекомендованный) + +>[!NOTE] +>При первом запуске БД и коллекции будут созданы автоматически. + +```yaml +--- +services: + app: + container_name: yandex-music-discord-bot + image: deadcxap/yandexmusicdiscordbot:latest + restart: unless-stopped + depends_on: + - mongodb + env_file: + - .env + environment: + MONGO_URI: "mongodb://ymdb-mongodb:27017" + networks: + - ymdb_network + mongodb: + container_name: ymdb-mongodb + image: mongo:latest + restart: unless-stopped + volumes: + - mongodb_data:/data/db + - ./init-mongodb.js:/docker-entrypoint-initdb.d/init-mongodb.js:ro + networks: + - ymdb_network + healthcheck: + test: echo 'db.runCommand("ping").ok' | mongo localhost:27017 --quiet + interval: 30s + timeout: 10s + retries: 5 + +volumes: + mongodb_data: + +networks: + ymdb_network: +``` + +```bash +docker-compose up -d +``` + ## Настройка бота Так должны выглядить настройки бота: