Как использовать `docker compose exec` с grep и ANSI color?

Я лишь вскользь знаком с Docker и с тем, как работают TTY в Linux. На работе я использую такие команды, как docker compose up для запуска стека разработки (Postgres + Django), и docker compose exec web python manage.py ... для запуска команд Django во время разработки.

Противоречивые проблемы:

  1. Я не могу передавать ввод или вывод grep без добавления -T. Я не знаю почему, я просто знаю, что с ним это работает, а без него нет.

    • Я заполняю БД с помощью docker compose exec -T db psql -U username myproj < snapshot.sql, потому что без -T входные данные не попадают в psql.
    • Я также добавляю -T, когда мне нужно вывести вывод grep, например:
      docker compose exec web python manage.py showmigrations | grep '[ ]'.
  2. Однако, когда я использую -T, он портит ANSI раскраску и форматирование.

    • Без -T: enter image description here
    • С -T: enter image description here

Вопрос: Каков правильный метод? Как правильно подключить STDIN & STDOUT, не испортив цвет & форматирование?

Вернуться на верх