Dify Community版をMacのRancher Desktop上で動かす
Dify 0.6.11をローカル環境にインストールし、起動してみました。Docker Desktopの場合はスムーズに動くみたいなのですが、Rancher Desktopを利用している場合は、普通にdocker compose up
しただけでは、エラーとなり起動できません。ここでは正しく動作させるための手順を記載します。
利用したDify Versionは 0.6.11です。
要約
- Rancher DesktopではTreafikがport 80/443で動作しているため、デフォルトポートを変更する必要がある。
- Rancher Desktopでpostgresqlを起動すると、データファイルのChownでエラーになり起動しない。これを回避するために、Rancher Desktopの設定を変更する必要がある。
Dify起動手順
1. Difyリポジトリのクローン
まずDifyリポジトリをクローンします。常にheadを試したいとかでなければ、最新リリースのタグを使っておくのが良いと思います。ここでは 0.6.11
タグに切り替えています。チェックアウトが完了したら、docker関係のファイルが置いてある dify/docker
ディレクトリに移っておきます。
git clone https://github.com/langgenius/dify.git
git checkout -b <自分で決めたブランチ名> refs/tags/0.6.11
cd dify/docker
2. Docker Composeファイルの修正
Rancherではk3sクラスタのルーティングのためにTreafikというコンポーネントを利用していますが、これが80/443ポートを利用しています。このままだとポートが重複してしまうため、Docker Composeファイル (docker-compose.yaml
) のnginxの転送ポートの指定を書き換えます。ここでは公開ポートを8888にしています。
@@ -510,7 +510,7 @@ services:
- api
- web
ports:
- - "80:80"
+ - "8888:80"
#- "443:443"
3. Rancher Desktopの設定変更
この状態で普通にdocker compose up
すると、docker-db-1
コンテナが再起動を繰り返します。docker logs
でログを見ると
chown: /var/lib/postgresql/data/pgdata: Permission denied
chown: /var/lib/postgresql/data/pgdata: Permission denied
chown: /var/lib/postgresql/data/pgdata: Permission denied
このようなエラーが出力されています。こちらはRancher Desktopの固有の問題のようで、GithubにIssueが上がっています。Issueのディスカッションの中に記載されていた設定変更で修正することができたので、そちらの設定を記載します。
Rancher Desktopの設定画面を開き(メニューバーのアイコンからOpen Main Window)、Preferencesを開きます。
左側のメニューからVirtual Machineを選択し、EmulationタブでVZを選択します。
同様に、Volumeタブでvirtiofsを選択します。
これでひとまず準備は整いました。起動します。
docker compose up -d
> docker compose up -d
WARN[0000] /Users/.../Project/Dify/dify/docker/docker-compose.yaml: `version` is obsolete
[+] Running 9/9
✔ Container docker-db-1 Started 1.6s
✔ Container docker-web-1 Running 0.0s
✔ Container docker-redis-1 Started 1.4s
✔ Container docker-sandbox-1 Started 1.2s
✔ Container docker-ssrf_proxy-1 Started 1.6s
✔ Container docker-weaviate-1 Started 1.3s
✔ Container docker-api-1 Started 1.5s
✔ Container docker-worker-1 Started 1.4s
✔ Container docker-nginx-1 Started
すべてのコンテナが正常に稼働していることを確認します。
docker ps -f name=docker --format "table {{.ID}}\t{{.Image}}\t{{.Status}}"
CONTAINER ID IMAGE STATUS
f1958610dd05 nginx:latest Up About an hour
1486262aea4c langgenius/dify-api:0.6.11 Up About an hour
e0f7c95faae2 langgenius/dify-api:0.6.11 Up About an hour
77d061a79118 ubuntu/squid:latest Up About an hour
3258c4bc88c6 redis:6-alpine Up About an hour (healthy)
c92f9c9f4831 semitechnologies/weaviate:1.19.0 Up About an hour
7e9fddc9af0c langgenius/dify-sandbox:0.2.1 Up About an hour
7d75467bae33 postgres:15-alpine Up About an hour (healthy)
ef8befdb2aa0 langgenius/dify-web:0.6.11 Up About an hour
4. 初期設定
正常に立ち上がったら、ブラウザでhttp://localhost:8888/install
にアクセスして、初期ユーザー設定を行います。
ログイン後、以下のようなホーム画面が表示されたら問題ないです。
Dify終了手順
docker compose down
ですべてのコンポーネントを終了させることができます。
Discussion