Использование в Docker#
Установка#
Установка из Dockerhub#
У нас есть несколько тегов:
latest- Последний релиз проекта.dev- Самая последняя возможная версия проекта. Используйте только для тестирования, всегда могут быть проблемы с несовместимостью версий.x.y.z- Релиз проекта в формате Semantic Versions.
Каждая из веток имеет так же дубликаты с суффиксами баз данных, на данный момент это могут быть sqlite, mysql или postgresql. То есть, например, для ветки latest будет так же доступен контейнер latest-sqlite.
Тег без суффикса - стандартная база данных. На данный момент это sqlite. То есть тег latest это тоже самое что и latest-sqlite.
Есть так же несколько устаревших тегов, которые остаються только для истории. Это main, rewrite и newdb.
Предупреждение
Если вы используете базу данных не sqlite - вам нужно самостоятельно применить миграции для нее. В sqlite миграции применяются при компилировании изображения. Смотрите Database migrations для инструкции.
Самостоятельная компиляция#
Вы так же можете самостоятельно скомпилировать все изображения из корневой директории проекта. Для этого просто необходимо использовать команду:
docker build -t perchunpak/pingerbot . --build-arg dialect=sqlite
Где --build-arg dialect=sqlite - параметр, определяющий базу данных, которую вы хотите использовать. Вместо sqlite можете подставить любую другую, которая поддерживается.
Предупреждение
Если вы используете базу данных не sqlite - вам нужно самостоятельно применить миграции для нее. В sqlite миграции применяются при компилировании изображения. Смотрите Database migrations для инструкции.
Запуск#
Для запуска, в обоих случаях установки, используется одна команда:
docker run --name pingerbot -d perchunpak/pingerbot
Если вы используете базу данных sqlite, вы так же должны указать -v ВАША_ПАПКА:/app/pinger/pinger_bot.db (Где ВАША_ПАПКА это папка с вашей файлом базы данных, рекомендовано использовать абсолютный путь). Это делается, чтобы иметь возможность сохранять базу данных в случае рестарта контейнера.
Вы так же обязательно должны указать всю вашу конфигурацию через -e флаги. Эти флаги просто устанавливают переменные окружения, так что интерфейс будет аналогичным с config.yml, но все ключи в верхнем регистре.
Они идут в формате -e KEY=VALUE, где KEY это ключ к настройке в верхнем регистре из config.yml (например DISCORD_TOKEN), а KEY это значение настройки.
Как и -v флаг, они обязаны идти между флагом -d и perchunpak/pingerbot.
Начиная с версии 0.4.0 контейнер работает в без-root режиме, что означает, что если вы используете тэг sqlite и опцию -v, вам необходимо предоставить права на папку. Это можно сделать с помощью команды chown -R 5000:5000 <ваша папка>.
Не касается пользователей Windows.
См.также
podman как замену для Docker.
См.также
Команду
docker run --help
Для большего списка аргументов и возможностей, выше только самое основное.