Docker — порядок на сервере

В прошлом уроке вы задеплоили бота на сервер: агент установил все нужные программы, перенес код и настроил автозапуск. Бот работает, все отлично.

Но как только вы решите добавить туда новый проект, могут начаться проблемы. Дело в том, что каждая программа на Python использует внешние пакеты — готовые кусочки кода, которые кто-то написал до вас. Ваш бот, например, использует python-telegram-bot для работы с Telegram и deepgram для расшифровки аудио. Эти инструменты установлены на сервере и лежат в общей папке.

Теперь представьте, что вы запустите на том же сервере второй проект. Он тоже будет использовать python-telegram-bot, но другой версии — более старой или более новой. Две версии одного инструмента не смогут существовать в одной папке одновременно. Установка второго инструмента перезапишет настройки первого — и один из ботов сломается. И чем больше проектов на сервере, тем чаще будут возникать такие конфликты.

Чтобы такого не происходило, проекты нужно изолировать друг от друга. Для этого существует Docker — программа, которая запускает каждый проект в отдельном контейнере. Контейнер — это изолированная среда со своими настройками и инструментами. Проекты в разных контейнерах не пересекаются: каждый работает так, будто он на сервере один. Можно запустить хоть десять проектов рядом, и они не будут мешать друг другу.

🔒

Этот материал доступен участникам Клуба. Войдите или оформите доступ, чтобы читать целиком, открывать видео и комментировать.

Войти Вступить / купить доступ