Есть ли способ поделиться томом .bash_history
с контейнером докера, чтобы каждый раз, когда я вхожу в оболочку, у меня есть моя история bash для прокрутки?Docker и .bash_history
Было бы замечательно иметь возможность делать то же самое с IPython.
Есть ли способ поделиться томом .bash_history
с контейнером докера, чтобы каждый раз, когда я вхожу в оболочку, у меня есть моя история bash для прокрутки?Docker и .bash_history
Было бы замечательно иметь возможность делать то же самое с IPython.
Это пример из documentation about volume: Mount a host file as a data volume:
docker run --rm -it -v ~/.bash_history:/root/.bash_history ubuntu /bin/bash
Это приведет к вам в Баш оболочку в новый контейнер, вы будете иметь свою историю Баш от хоста и при выходе из контейнер, хост будет иметь историю команд, введенных в контейнере.
В вашем docker-compose.override.yml
:
version: '2'
services:
whatever:
…
volumes:
- …
- ~/.bash_history:/root/.bash_history
В документации указано, что установленные тома должны начинаться с '/'. Это не работает для меня с '~'. – aghull
@aghull вы можете заменить '~' значением '$ HOME', но он будет менее переносимым –
Чтобы сохранить историю IPython, вы можете установить переменные окружения IPYTHONDIR
где-то в пределах вашего отображенного объема.
docker-compose.override.yml
будет выглядеть следующим образом:
version: '2'
services:
some-service:
environment:
- IPYTHONDIR=/app/.ipython
volumes:
- .:/app
Я должен добавить комментарий по этому поводу - я видел это и пробовал, но без успеха. Кажется, что команды, которые я запускаю внутри контейнера, не обновляют файл '.bash_history'. Я выполняю команды внутри контейнера в качестве пользователя root. Есть идеи? – tzenderman
Это тот же пользователь на хосте и в контейнере? – user2915097
Нет, пользователь моего хоста - мой пользователь, а пользователь внутри контейнера - root. Но я не думаю, что это должно что-то изменить? Когда я внутри контейнера, кажется, что нет файла .bash_history, где бы ни было написано, когда я выполняю команды. – tzenderman