Dify Windows 11でローカルデプロイ時にプラグインをダウンロードできない問題

Difyをローカルで実行できますが、プラグインをダウンロードできません。解決策を教えてください。
ファイアウォールはオフになっています

インストール失敗

プラグインの起動に失敗しました: 仮想環境の作成に失敗しました: 仮想環境の作成に失敗しました: 終了ステータス 2、出力: CPython 3.12.3 インタープリターを以下で使用しています: /usr/bin/python3.12 仮想環境を以下に作成しています: .venv エラー: 仮想環境の作成に失敗しました 原因: /usr/bin/python3.12 から /app/storage/cwd/langgenius/tongyi-0.1.31@638e473191f93192f670875b06edf0bcb89a3433aa736be89ed1749073b8a168/.venv/bin/python へのファイルのシンボリックリンク作成に失敗しました: 操作が許可されていません (OSエラー 1) 環境の初期化に失敗しました

試行錯誤と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プラグインのインストールプロセスは次のとおりです:

  1. プラグインのソースコードをダウンロードする

  2. プラグインディレクトリに .venv を作成する

  3. python -m venv を実行する

  4. .venv/bin/python/usr/bin/python を指すsymlinkを作成する

しかし:

Windowsファイルシステム(NTFS)がDockerでマウントされる際:

  • コンテナがsymlinkを作成することを許可しない

  • または管理者権限が必要

  • Dockerはデフォルトで禁止している

そのため、次のエラーが発生します:

Operation not permitted


二、推奨される解決策(最も安定)

plugin_daemoncwd を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 ローカルデプロイ完全ガイド:ゼロから成功まで - 知乎

「いいね!」 1

postgresqlエラー問題の解決策:

difyインストール中にdependency failed to start: container docker-dify-170-db-1 is unhealthyエラーが発生した場合の解決策_dependency failed to start: container docker-db-1 -CSDNブログ