Python3: не может запускать команды в оболочке, открытой подпроцессом для команд докера - PullRequest
0 голосов
/ 25 февраля 2019

У меня есть скрипт 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?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...