Ви також можете підключити локальний каталог до вашого образу докера та створити скрипт у вашому .bashrc
. Не забувайте, що сценарій повинен складатися з функцій, якщо ви не хочете, щоб він виконувався на кожній новій оболонці. (Це застаріло, див. Повідомлення про оновлення.)
Я використовую це рішення, щоб мати можливість оновити сценарій поза екземпляром докера. Таким чином, мені не потрібно повторно запускати зображення, якщо відбуваються зміни, я просто відкриваю нову оболонку. (Позбувся повторного відкриття оболонки - див. Повідомлення про оновлення)
Ось як ви пов’язуєте свій поточний каталог:
docker run -it -v $PWD:/scripts $my_docker_build /bin/bash
Тепер ваш поточний каталог прив'язаний до /scripts
вашого екземпляра докера.
(Застаріло) Щоб зберегти .bashrc
зміни, зафіксуйте робочий образ за допомогою цієї команди:
docker commit $container_id $my_docker_build
Оновлення
Щоб вирішити проблему, щоб відкрити нову оболонку для кожної зміни, я зараз роблю наступне:
У сам файл docker я додаю RUN echo "/scripts/bashrc" > /root/.bashrc"
. Всередині zshrc
я експортую каталог сценаріїв у шлях. Каталог скриптів тепер містить кілька файлів замість одного. Тепер я можу безпосередньо викликати всі сценарії, не відкриваючи додаткову оболонку при кожній зміні.
До речі, ви також можете визначити файл історії поза вашим контейнером. Таким чином, більше не потрібно виконувати зміни баша.
WORKDIR
іCMD
?