Использование в Docker#

Установка#

Установка из Dockerhub#

У нас есть несколько тегов:

  1. latest - Последний релиз проекта.

  2. dev - Самая последняя возможная версия проекта. Используйте только для тестирования, всегда могут быть проблемы с несовместимостью версий.

  3. 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

Для большего списка аргументов и возможностей, выше только самое основное.