Dockerfileと外部ボリュームの注意点

docker-composeでビルド時にexternal volumeにデータの追加ができない問題。

事象

docker-compose内でサービスにボリュームをマウントしてある状態で、Dockerfileで(再)ビルドを行ったとき、 ボリュームへのデータの追加に失敗する。

失敗といっても、別にエラー表示などは出力されず、ビルドが普通に通る。アタッチしてlsしてみても、追加したはずのファイルは存在しない、といった具合。

原因と対処

| Docker Documentationを参考にすると、

Changing the volume from within the Dockerfile: If any build steps change the data within the volume after it has been declared, those changes will be discarded.

こんな記載がある。外部ボリュームだと、Dockerfileのビルド中にボリュームへデータを作成・コピーできないようだ。 前も1回引っかかったことがあるような気がする。

外部ボリュームというか、Dockerfile内で言えば、VOLUME命令を使われた後に変更を行っても、破棄される。

大人しく、サービスにアタッチして、コマンド直打ちでデータの変更を行った。

タイトルとURLをコピーしました