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命令を使われた後に変更を行っても、破棄される。
大人しく、サービスにアタッチして、コマンド直打ちでデータの変更を行った。


コメント