✅WSL2のコンテナを使うとrootでデータファイルが生成されてwrite権限がない
from stable-diffusion-webui-dockerをつかうと
dataに画像が生成されるがそれexplorerから消せない
modelsにデータも書き込めない
from AUTOMATIC1111版Stable Diffusion web UIの日々の使い方
この問題が起きる原因
【Docker】 WSL 2 を利用したコンテナー内開発で権限をどう設定するべきか - ultra code
ホスト側の WSL 2 Linux ディストリビューションは
初期設定では、UID 1000 のユーザーとして操作することになります
UID 1000 は Linux ディストリビューションの初期設定時に作成されたユーザーです
Windows のエクスプローラーからの操作も、この UID 1000 のユーザーの扱いとなります
Windows 側からコピーや移動して持ってきたファイルも
UID 1000 のユーザーが所有者となります
解決策
$ sudo chown -R motoso:motoso data/
WSL2でDockerを使用する際の権限問題を解決するシンプルな方法(docker-compose.yml使用) - Qiita
Docker公式ドキュメントの Railsアプリのセットアップ ではこの方法が使用されています。
コンテナ側のユーザをWSL2のユーザに合わせる
docker-coposeを変更する必要あり
こっちのconfig設定できるようにPRを出すのが王道かも
https://futureys.tokyo/how-permission-should-be-set-for-developing-inside-a-container-using-wsl-2/
Docker の公式ドキュメントでは、
権限を気にする必要があったり、ファイル・フォルダーを追加更新削除する場合、
bind mount ではなく volume を使うことを推奨しています。
stable-diffusion-webui-dockerでは最初からvolumeが使われている