Open2

LLM Agent関連のリンク、記事

shohei6117shohei6117
shohei6117shohei6117

Dify環境を作る

ゴール

  • ローカルにDify環境を作り、起動できるようになる

まとめ

  • docker compose upでコンテナを作るときは他のアプリを閉じる!
  • nginxの起動ができない問題の解決に手間取った(後述)

関連リンク

手順

  1. gitをインストールする(割愛)
  2. DockerDesktopをインストールする(割愛)
  3. 適当なディレクトリでPowerShellを立ち上げる
  4. コードをgit cloneする
PowerShell
git clone https://github.com/langgenius/dify.git
  1. dockerフォルダに移動して、docker-compose upする。
PowerShell
docker compose up -d

⇒イメージからコンテナを作り、起動する
このとき別のアプリを起動していると失敗するので注意。

  1. コンテナはできたが、nginx起動でエラーが出る。



Error invoking remote method 'docker-start-container': Error: (HTTP code 500) server error - Ports are not available: exposing port TCP 0.0.0.0:80 -> 0.0.0.0:0: listen tcp 0.0.0.0:80: bind: An attempt was made to access a socket in a way forbidden by its access permissions.

リモート メソッド 'docker-start-container' の呼び出しエラー: エラー: (HTTP コード 500) サーバー エラー - ポートが利用できません: ポート TCP 0.0.0.0:80 -> 0.0.0.0:0: listen tcp 0.0.0.0:80 を公開しています :bind:アクセス許可で禁止されている方法でソケットにアクセスしようとしました。

⇒つまり80番ポートが別のアプリで使用済みということらしい。

  1. 解決策をあれこれ調べてみる
    まずは以下の2つのサイトの対処方法を参考にする。


0.0.0.0:80PID=4が使っている。


PID=4はSystemが使っている。


⇒あれ、「World Wide Webサービス」にチェックは入っていない。。

次にこんな投稿を見つけた。

ダウンロードして起動する。


⇒この画面をみて、ようやく80番ポートを使っているアプリが分かった。。
⇒このアプリはいじれない。。

  1. docker-compose.yamlの設定を変える
docker-compose.yaml
  # The nginx reverse proxy.
  # used for reverse proxying the API service and Web service.
  nginx:
    image: nginx:latest
    restart: always
    volumes:
      - ./nginx/nginx.conf:/etc/nginx/nginx.conf
      - ./nginx/proxy.conf:/etc/nginx/proxy.conf
      - ./nginx/conf.d:/etc/nginx/conf.d
      #- ./nginx/ssl:/etc/ssl
    depends_on:
      - api
      - web
    ports:
      # - "80:80" #これをコメントアウト
      - "8080:80" #こちらに変更
      # - "443:443" #こっちは触らない

⇒これで再度 docker compose up -dする
⇒無事起動。。

⇒でも管理者としてサインアップできない。。
⇒起動できないコンテナもあり。。