環境
- Docker version 19.03.8, build afacb8b
- docker-compose version 1.25.5, build 8a1c60f6
- Java 1.8
- SpringBoot 2.2.5.RELEASE
事象
Dockerに載せたWebアプリで画像を保存してから、
Dockerを再起動すると保存した画像ファイルが消えてしまう。
原因
名前付きボリュームのパス指定とアプリ側で画像保存するパスが異なっていた。なので、保存した画像は名前付きボリュームには保存されず、コンテナを停止したら消えてしまっていたというオチ。
DBとかのパス指定を参考に設定していたけど、アプリ側が登録する場所に
合わせないとそりゃだめだよね・・・
アプリが画像を保存する先
/static/images/xx/xxx.png
docker-compose.ymlを以下のように修正
# 修正前
volumes:
- images:/var/itetenosuke/images
# 修正後
volumes:
- images:/static/images
これでDocker再起動しても画像消えなくなった。