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