Использование Ubuntu 19.10 с использованием стандартного терминала GNOME.
Я создал docker образ с nvm , используя следующий файл dockerfile (это будет команда npm диагностики / отладки) контейнер строки, поэтому не приложение):
FROM ubuntu:19.10
RUN rm /bin/sh && ln -s /bin/bash /bin/sh
RUN apt-get update && \
apt-get -y dist-upgrade && \
apt-get -y autoremove && \
apt-get clean
RUN apt-get install -y \
curl \
nano \
git
ARG NODE_VERSION='12.0.0'
ARG NVM_DIR=/root
ARG NVM_VERSION='v0.35.3'
RUN curl -o- "https://raw.githubusercontent.com/nvm-sh/nvm/$NVM_VERSION/install.sh" | bash \
&& source $NVM_DIR/nvm.sh \
&& nvm install $NODE_VERSION
Я собрал образ, поместил его в реестр изображений и запустил в k8s. Я получил доступ к работающему контейнеру с:
kubectl exec my-app-xx25 -it bash
Но когда внутри контейнера я не могу запустить, например, nano
:
root@my-app-xx25:/# nano
Error opening terminal: unknown.
или сбросить терминал для этого:
root@my-app-xx25:/# reset
reset: unknown terminal type unknown
vi
/ vim
работает, хотя.
На основе:
https://github.com/moby/moby/issues/9299
Если я делаю :
kubectl exec my-app-xx25 -it -- bash -c "export TERM=xterm && bash"
Я могу нормально запустить nano, но это выглядит как грязный обходной путь.
Обратите внимание, если я запускаю его локально с docker, он работает нормально (запуск nano, reset et c):
docker run -it my-image /bin/bash
Любые предложения о том, что происходит и почему мне нужно передать export TERM=xterm
при запуске kubectl exec
, а не при docker run
(локально)?