Open1
dockerのメモ
ホスト上のディレクトリをボリュームとしてマウントし,そのボリュームでコンテナへマウントする
何を言ってるかわからねえと思うが,以下の前提がある.
- ホストのディレクトリをコンテナにマウントしたい
- パスで指定するのではなく名前をつけたい +
volume
として扱いたい - が,何らかの不手際で
volume
と一緒にディレクトリが削除されては困る -
non-empty-data であっても正常に動作してほしい
version: "3.9"
services:
app:
.
.
volumes:
- datastore:/path/to/dir/in/container
volumes:
datastore:
driver: local
# cf. https://bit.ly/35tRa66 --> but this solution needs `driver: local` or somthing driver.
driver_opts:
type: none
device: ${PATH_TO_YOUR_DIRCTORY}
o: bind
ハードコーディングが避けられるし,ボリュームつくって使い回せるしサイコーな可能性が高いです[要検証].PATH_TO_YOUR_DIRCTORY
は .env
とかグローバルな環境変数とかに設定するといいかと思います.
動作環境は以下の通り.Macとかで実現できなかったらスマン…
- Docker desktop for Windows: 3.0.4(51218)
- docker engine: 20.10.2
- docker compose: 1.27.4
- settings.General: ✅
Use the WSL 2 based engine
- settings.Resources.WSL-Integration: ✅
Enable integration with my default WSL distro
参考文献:
-
Docker Composeのトップレベルvolumesでホストのディレクトリをマウントする - ニューなんとなく書くブログ
- (実は,単にこの記事の手法へ
driver: local
を付け加えたら同様に動いたよというだけの話)
- (実は,単にこの記事の手法へ