Я вошел в приложение командой ./launcher enter app и выполнил команду
apt install net-tools
Это не сработало.
Я обычно не трогаю настройку Discourse, но мне нужно разобраться с недавним ростом нагрузки на сервер (увеличением спроса пользователей), поэтому я предположил, что мне нужно зайти в приложение и запустить netstat.
Оказывается, эта утилита не установлена по умолчанию, и я не могу её установить.
Я понимаю, что это довольно простой вопрос, и, вероятно, упускаю что-то очевидное. Возможно, мне вообще не нужно находиться внутри приложения?
Контейнеры Discourse создаются с использованием шаблона app.yml, и все необходимые пакеты должны быть установлены в процессе сборки образа (т.е. при запуске команды ./launcher rebuild app). Установить пакеты интерактивно изнутри запущенного контейнера невозможно.
В результате такие распространённые утилиты, как net-tools (предоставляющая команду netstat), обычно не включаются в образ и не могут быть легко добавлены после запуска контейнера.
Если вам требуется netstat внутри контейнера, необходимо добавить его в ваш файл app.yml, а затем пересобрать контейнер.
Действительно, необходимо установить мониторинг на внешнем уровне. Рассматривайте контейнер как средство изоляции: идея заключается в том, что процессы внутри контейнера не могут нарушить работу внешних систем. Однако внешний уровень может отслеживать всё, что происходит внутри: весь сетевой трафик, активность процессора, нагрузку на память.