Файл в образе Shiny Docker не изменится, если я изменю этот файл на хосте - PullRequest
0 голосов
/ 26 июня 2019

Я создал образ Docker моего блестящего приложения на моей машине с Ubuntu.

Это приложение использует несколько файлов, размещенных в какой-либо папке на хосте (не в контейнере). Я держу их снаружи контейнера, так как они большие по размеру.

Теперь я запускаю код, приведенный ниже, чтобы получить мое изображение и запустить

docker run -d -v /opt/lampp/htdocs/www:/www:rw --restart=always -d -p 8383:8383 app

При этом я ожидал, что если я внесу какие-либо изменения в любой файл в '/opt/lampp/htdocs/www' в Host, то он автоматически отразится в папке www внутри контейнера.

Но этого не происходит. Почему это так? Нужно ли перестраивать образ моего приложения каждый раз, когда я меняю какой-либо файл в '/opt/lampp/htdocs/www' на хосте?

Я также попытался скопировать файлы непосредственно с хоста на контейнер, как показано ниже, но все еще не вижу никаких изменений, отраженных в образе докера моего блестящего приложения

docker exec -i 9498f0e1c5066f060c0e9439faa744cc39208ee27fc0dbe0d54075c683748137 bash -c 'cat > /www/aaa.csv' < /opt/lampp/htdocs/www/aaa.csv

1 Ответ

0 голосов
/ 26 июня 2019

Ваша копия не будет работать, поскольку все, что следует после вашей команды exec, ссылающейся на файлы в контейнере.

вы должны использовать:

docker cp /opt/lampp/htdocs/www/aaa.csv YOUR_CONTAINER_NAME:/www/aaa.csv

Я действительно не знаю, почему не работает ваше крепление, вы видите что-нибудь в логах?

наконец вы можете удалить первый -d из вашей docker run команды

...