Dockerfileと外部ボリュームの注意点
docker-composeでビルド時にexternal volumeにデータの追加ができない問題。
事象
docker-compose内でサービスにボリュームをマウントしてある状態で、Dockerfileで(再)ビルドを行ったとき、 ボリュームへのデータの追加に失敗する。
失敗といっても、別にエラー表示などは出力されず、ビルドが普通に通る。アタッチしてlsしてみても、追加したはずのファイルは存在しない、といった具合。
原因と対処
| [ | Docker Documentation](https://docs.docker.com/engine/reference/builder/#volume)を参考にすると、 |
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命令を使われた後に変更を行っても、破棄される。
大人しく、サービスにアタッチして、コマンド直打ちでデータの変更を行った。