2017-02-13 4 views
1

Я работаю над базовым изображением 'tomcat: 7.0.75-jre8-alpine' и хочу развернуть мое веб-приложение вместе с его файлом конфигурации. Ниже то, что я делаю в Dockerfile:Docker копирует файлы и монтирует ту же папку

...... 
COPY <my-app-configurations> /org/app/data 
COPY <my-app-configurations> /org/app/conf 
...... 
CMD ["catalina.sh", "run"] 

И я использую следующую команду, чтобы создать контейнер из картинки:

$ docker run -p 8080:8080 -v "/c/Users/jaffy/app:/org/app" myapp-image 

папку «/ с/Users/jaffy/приложением» является изначально пусто, и я хочу получить в нем все содержимое '/ org/app' и останется в синхронизации.

Первоначально все конфигурации копируются в папку «/ org/app», но когда «/ c/Users/jaffy/app» смонтирован, «/ org/app» очищается/очищается.

Как я могу решить эту проблему, так как папка главного компьютера остается пустой, но впоследствии она отражает точное состояние контейнера '/ org/app' и его подкаталогов.

Большое спасибо.

+0

Я не думаю, что можно что-то в сборке крепления время. Является ли это особой помощью? Вы можете поместить свои приложения и файлы conf в папку, которую вы используете в качестве контекста сборки. – Francesco

ответ

0

Невозможно сохранить содержимое папки в контейнере, когда вы монтируете или обмениваетесь томом по этой папке, потому что эта команда заменяет папку, не объединяющую ее.

Если вам не нужно, чтобы заменить все файлы в папке можно просто смонтировать файл, который нужно изменить, как:

 
$ docker run -p 8080:8080 -v "/c/Users/jaffy/app/web.xml:/org/app/web.xml" my-app-image 
Смежные вопросы