Використання в 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 міграції приміняються поки ми збираємо зображення. Дивіться Міграції бази даних для більшої інформації.

Самостійна компіляція#

Також, ви можете скомпілювати зображення з кореневої теки проекту. Для цього, просто використайте команду:

docker build -t perchunpak/pingerbot . --build-arg dialect=sqlite

Де --build-arg dialect=sqlite - параметер, який визначає яку базу даних ви будете використовувати. Замість sqlite ви можете встановити що завгодно, що ми підтримуємо.

Попередження

Якщо ви не використовуєте sqlite, вам також треба буде застосовувати міграції бази даних самостійно. В sqlite міграції приміняються поки ми збираємо зображення. Дивіться Міграції бази даних для більшої інформації.

Запуск#

Для запуску бота, в обох випадках встановлення, використайте цю команду:

docker run --name pingerbot -d perchunpak/pingerbot

Якщо ви хочете використовувати sqlite, ви також повинні встановити опцію -v ВАША_ТЕКА:/app/data (Де ВАША_ТЕКА це ваша тека до теки з базою даних, рекомендовано встановлювати абсолютний шлях.) Це потрібно щоб зберігати вашу базу даних коли контейнер перезавантажиться.

Вам також треба встановити опцію -e для кожного параметра конфігурації. Ця опція просто встановлює зміни оточення, так що інтерфейс буде такий самий як і в config.yml, але всі ключі параметрів повинні бути у верхньому регістрі.

Вони повинні використовуватися як -e КЛЮЧ=ЗНАЧЕННЯ, де КЛЮЧ це ключ з config.yml у верхньому регістрі (наприклад DISCORD_TOKEN), і ЗНАЧЕННЯ це значення.

Так як і опція -v, воно повинно бути між флагом -d і perchunpak/pingerbot.

З версії 0.4.0 контейнер запускається в режимі без-root, що означає, що якщо ви використовуєте тег sqlite і -v опцію, вам потрібно надати права на папку. Це можна зробити за допомогою команди chown -R 5000:5000 <ваша тека>.

Не стосується користувачів Windows.

Дивись також

podman як заміну для Docker.

Дивись також

Команду

docker run --help

Для повного списку аргументів та можливостей, вище тільки саміоснови.