Как изменить файл в контейнере Docker примонтированный с хоста?
Предыстория.
Есть контейнер, в котором разворачивается инстанс бд. Для корректной работы требуется примонтировать ряд томов.
1. собсно папка с дампами и файлами
2. Некие скрипты, которые проводят обновления кода в бд.
3. скрипты наката обновлений в контейнере
Пунк 2 целиком и полностью хранится в SVN. Сообстветственно, перед запуском контейнера он обновляется через TeamCity.
Скрипты имеют права доступа закомиченные разработчиком. и некоторые файлы не имеют прав доступа для other пользователей (потому как в контейнере свой пользователь).
Для наката изменений под конкретную среду требуется заменить дефолтный файлик на преднастроенный.
При попытке подменить его на преднастроенный возникает ошибка отсутствия прав на перезапись...
Как корректно примонтировать том, чтобы избежать подобных ситуевин ?
Контейнер запускается с двумя volume:
1 - общая директория
2 - частный маунт одного файла впрямо в первой директории
В вашем случае это может выглядеть так:
docker run -it --rm -v $(pwd)/svn/data:/data:ro -v $(pwd)/svn/sut/ubuntu/config.yaml:/data/config.yaml:ro ........ my-container
Талик, 0 - перед каждым инстанциированием, случайно, не пересобираете образ?
1 - ремаппинга прав для fs никогда не будет.
2 - так как нет возможности подменить файл изнутри контейнера (права ли или просто ro), то его нужно изменить при запуске - ибо рут его пускает
rustler2000, 0. Нет
1. Да, я думал, что все же есть выход, потому и задал вопрос.
2. Да, как временное решение это работает. Но, опятьже, казалось, что ктото полюбому сталкивался и решал по другому. В любом случае спасибо