DifyをWSLに入れて遊んでみる

2025-01-14

WSL の環境を整える

WSL(Ubuntu)にDocker環境を構築する を参考に Docker 環境を整えます。

sudo apt-get update && sudo apt-get upgrade -y
sudo apt-get install ca-certificates curl gnupg
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
echo \
  "deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
  "$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
sudo usermod -aG docker $USER
sudo docker run hello-world

git が必要なのでこれも入れます。

sudo apt-get install git

Dify を WSL にクローンする

Dify のリポジトリをクローンします。

git clone https://github.com/langgenius/dify

Cursor でコンテナを開く

Windows から Cursor(もしくは VScode) 経由で WSL を見ている状態で、クローンした /dify を開きます。
Cursor には Remote Development の拡張機能パックが入っている環境であれば、コンテナで開く選択肢が表示されると思います。

Remote Development - Visual Studio Marketplace

コンテナ環境へ移行します。
構成には時間がかかるみたいなのでしばらく待ちます。

なんかエラー吐いてますが…
後々大丈夫っぽいのがわかったので無視しておきます。

Dify を起動してみる

Cursor からターミナルを開いて ./docker へ移動し、入れてみます。

cd ./docker
docker compose up -d

Docker 初学者なのでわからないことだらけですが、
compose は、複数コンテナを動かすときのコマンドらしいですね。

【入門】Docker Composeとは?インストールと使い方 - カゴヤのサーバー研究室

ターミナル上で動作が終わったら、http://localhost/install にアクセスできるようになっているのでアクセスしましょう。

アクセスするとこのように出てくると思います。
最初はぐるぐる回っていましたが、しばらく待っても治らなかったので一回ブラウザ更新をかけたらここに来れました。

各項目を記入すると、ログイン画面に行けるのでログインします。
ログインするとこのようになります。

これで Dify 開発が行えるようになりました。

ターミナル上で動いてるわけではないらしいので、ターミナルを閉じても動作し続けます。

コンテナから脱出する際は、左下の 開発コンテナー~ をクリックします

メニューが出てくるので、WSLでフォルダーをもう一度開く を押すといつもの WSL に戻れます。

ターミナルで普通に起動する

ここまでやって、「Cursor で動かす意味ないな?」と思い始めたので、普通にターミナルから起動します。

やり方はよく書かれてる方法でいけます。

cd dify/docker
docker compose up -d

Dify を終了させる

前述の通り、ターミナル上で動いているわけではないのでターミナルを閉じても Dify は動き続けます。

どうやって Dify を終了させるのかといいますと、このようにします。

  • dify/dockercd する
  • docker compose down をする
    up の反対は down なんですね、なるほどなあ。

dify/docker の中で compose down することがミソなので、ターミナルを終了した状態からだとこうします。

cd を外すと compose down ができません。

cd dify/docker
docker compose down

おわりに

Dify の起動から終了までを触ってみました。
Dify、使ったら便利なんだろうけどなかなか使い道が思いつかないので眠ってる状態が多いです。