✅WSL2のコンテナを使うとrootでデータファイルが生成されてwrite権限がない
modelsにデータも書き込めない
この問題が起きる原因
ホスト側の WSL 2 Linux ディストリビューションは
初期設定では、UID 1000 のユーザーとして操作することになります
UID 1000 は Linux ディストリビューションの初期設定時に作成されたユーザーです
Windows のエクスプローラーからの操作も、この UID 1000 のユーザーの扱いとなります
Windows 側からコピーや移動して持ってきたファイルも
UID 1000 のユーザーが所有者となります
解決策
$ sudo chown -R motoso:motoso data/
Docker公式ドキュメントの Railsアプリのセットアップ ではこの方法が使用されています。
コンテナ側のユーザをWSL2のユーザに合わせる
docker-coposeを変更する必要あり
こっちのconfig設定できるようにPRを出すのが王道かも
Docker の公式ドキュメントでは、
権限を気にする必要があったり、ファイル・フォルダーを追加更新削除する場合、
bind mount ではなく volume を使うことを推奨しています。