Я открываю интерактивную оболочку в контейнере докера вот так
sudo docker exec -t -i {container_name} bash
Пока все хорошо, но попытка запустить nanoприводит к:
Ошибка открытия терминала: неизвестно.
Я открываю интерактивную оболочку в контейнере докера вот так
sudo docker exec -t -i {container_name} bash
Пока все хорошо, но попытка запустить nanoприводит к:
Ошибка открытия терминала: неизвестно.
Ответы:
Я думаю, это может быть связано с проблемой Docker # 9299 .
В этой проблеме есть некоторые обходные пути:
-t).export TERM=xterm)TERM.
TERM=xterm-colorпохоже, работает только для меня. ответ serverfault .
Запустить команду: export TERM=xterm
Можете добавить
ENV TERM xterm
в ваш Dockerfile, если вы будете регулярно использовать редактор. У нас есть этот параметр в нашем базовом контейнере, поскольку мы постоянно отлаживаем вещи с помощью vi / emacs.
docker exec -it [CONTAINER_ID] /bin/bash -c "export TERM=xterm; exec bash"работает нормально. Я только что добавилENV TERM xterm перед EXPOSEутверждением, это правильно?
ENV TERM xtermперед RUNкомандой.
docker exec -it id_container bash
apt-get update
apt-get install nano
export TERM=xterm
Я сделал обходной путь, в моем .bashrc я добавил:
alias nano='export TERM=xterm && nano'
В этом случае ошибка больше не появляется
Для меня export TERM=xtermвызывает некоторые проблемы с отображением, описанные здесь:
/superuser/1172222/issues-editing-files-with-nano-in-bash-windows-10
В этом случае export TERM=linuxможет работать лучше.
Запустите эту команду в своем контейнере apk add nano