У меня есть скрипт Python3, который должен очищать журналы некоторых контейнеров докеров.Согласно этой записи , единственный способ - использовать оболочку питания, подключиться к виртуальной машине докера с помощью образа и очистить журналы.
Мне удалось сделать это вручную, но при попытке запустить его из скрипта я получаю сообщение об ошибке.Это мой код:
connect_to_img = "docker run --net=host --ipc=host --uts=host --pid=host -it --security-opt=seccomp=unconfined --rm -v /:/host alpine /bin/sh"
p = subprocess.Popen(connect_to_img, shell=True)
chg_permissions_cmd = "chroot /host"
p.communicate(chg_permissions_cmd)
delete_logs_cmd = "find /var/lib/docker/containers/ -type f -name '*.log' -delete"
p.communicate(delete_logs_cmd)
Когда код выполняется и
p.communicate(chg_permissions_cmd)
, я получаю
the input device is not a TTY. If you are using mintty, try prefixing the command with 'winpty'
Я пытался использовать winpty или использовать stdin какОбходной путь, но безуспешный.
Как я могу отправить инструкции для оболочки TTY из Python?