試行錯誤とChatGPT先生の助けにより、問題は解決しました。
以下が解決策です:
プロンプト:
インストール失敗 failed to launch plugin: failed to create virtual environment: failed to create virtual environment: exit status 2, output: Using CPython 3.12.3 interpreter at: /usr/bin/python3.12 Creating virtual environment at: .venv error: Failed to create virtual environment Caused by: failed to symlink file from /usr/bin/python3.12 to /app/storage/cwd/langgenius/tongyi-0.1.31@638e473191f93192f670875b06edf0bcb89a3433aa736be89ed1749073b8a168/.venv/bin/python: Operation not permitted (os error 1) failed to init environment
実際にダウンロードされたプラグインの場所は docker\\\\volumes\\\\plugin_daemon\\\\cwd\\\\langgenius です
応答:
このエラーは、実は根本原因をすでに示しています:
プラグインのダウンロードは成功しましたが、Python仮想環境 .venv の作成時にsymlink(シンボリックリンク)を作成する権限がありませんでした。
主要なエラー:
failed to symlink file from /usr/bin/python3.12
to /app/storage/cwd/langgenius/.../.venv/bin/python
Operation not permitted (os error 1)
意味は次のとおりです:
Dockerコンテナ内のPythonがシンボリックリンクを作成しようとしましたが、ホストマシンにマウントされたディレクトリがそれを許可しませんでした。
そして、プラグインの実際のパスは次にあると述べました:
docker/volumes/plugin_daemon/cwd/langgenius
これはまさに、WindowsファイルシステムをLinux Dockerコンテナにマウントする際の典型的な問題です。
一、問題の本質(Difyプラグインのインストール失敗の90%はこれです)
WindowsのマウントボリュームはLinuxのsymlink権限をサポートしていません
Difyプラグインのインストールプロセスは次のとおりです:
-
プラグインのソースコードをダウンロードする
-
プラグインディレクトリに .venv を作成する
-
python -m venv を実行する
-
.venv/bin/python に /usr/bin/python を指すsymlinkを作成する
しかし:
Windowsファイルシステム(NTFS)がDockerでマウントされる際:
そのため、次のエラーが発生します:
Operation not permitted
二、推奨される解決策(最も安定)
plugin_daemon の cwd をWindowsにマウントしないでください
代わりに**Dockerボリューム(Linuxファイルシステム)**内に配置します。
docker-compose.yml の変更
次を見つけます:
plugin_daemon:
このセクションを見つけます:
volumes:
- ./volumes/plugin_daemon:/app/storage
次のように変更します:
volumes:
- plugin_daemon_storage:/app/storage
そして、ファイルの最後に次を追加します:
volumes:
plugin_daemon_storage:
三、完全な再構築
その後、以下を実行します:
1 古いコンテナを削除する
docker compose down
2 古いボリュームを削除する
(残留を防ぐため)
docker volume prune
または:
docker volume rm docker_plugin_daemon
3 再起動する
docker compose up -d
五、プラグインを再インストールする
これでプラグインのパスは次のようになります:
/var/lib/docker/volumes/plugin_daemon_storage/_data/cwd/langgenius
これは Linuxファイルシステム です
symlinkを作成できます
仮想環境が正常に作成されるようになります。
Windows11の完全インストール参考資料:
Docker Compose を使用した Dify のデプロイ - Dify Docs
Dify ローカルデプロイ完全ガイド:ゼロから成功まで - 知乎