Dockerコンテナ内でWiki.jsを動かす際に発生したGraph APIのエラーの原因と解決方法

1. 問題の発生

この記事では、Wiki.jsをDockerコンテナーで実行する際に、Graph APIエンドポイントに接続できない問題について解決策を紹介します。

Dockerコンテナを使用していた際に、結果としてdocker-compose.ymlをいじっていたら、 ホストマシンからGraph APIエンドポイントにアクセスすることができないという、問題が発生しました。

具体的には、以下のエラーメッセージが表示されます。

2023-02-24T14:00:53.474Z [MASTER] warn: request to https://graph.requarks.io failed, reason: getaddrinfo EAI_AGAIN graph.requarks.io

このエラーは、Wiki.jsがGraph APIエンドポイントにアクセスできないため発生します。この問題を解決するためには、いくつかのステップを踏む必要があります。

2. 原因の特定

上述の通り、実は問題発生前にdocker-compose.ymlのネットワーク設定を変更していたため、 結果としてWiki.js コンテナからgraph.requarks.ioへの通信が遮断されてしまい、エラーが発生したものと考えられます。

具体的には、Wiki.js コンテナとgraph.requarks.ioの通信を可能にするために、docker-compose.ymlファイルのnetworksセクションにdefaultネットワークを追加する必要がありますが、 この手順を行わずに設定を変更したために、通信が遮断されてしまったと考えられます。

3. 解決策の検討

問題の原因がdocker-compose.ymlのネットワーク設定の不適切な変更である場合、ネットワーク設定を修正することで解決することができます。 具体的には、以下のような修正が考えられます。

  1. docker-compose.ymlのネットワーク設定を、問題が発生する前の設定に戻す。
  2. docker-compose.ymlのネットワーク設定を、正しい設定に修正する。

これらの方法は、問題の原因がネットワーク設定の変更によるものである場合に有効な解決策となります。

4. 解決策の実行

networksの設定を、以下のように変更しました。

networks:
  wikijs:
    name: wikijs
    external: false
    ipam:
      driver: default
      config:
        - subnet: 192.168.2.0/24

5. 問題解決の確認

問題解決のために、以下の手順を実行して問題が解決されたことを確認しました。

  1. docker compose downコマンドを使用してコンテナを停止します。
  2. docker compose up -dコマンドを使用してコンテナを再起動します。
  3. Wiki.js のログを監視し、グラフ API に対するリクエストが正常に送信されることを確認します。
  4. Wiki.js の Web インターフェイスにアクセスして、コンテンツの閲覧と編集が正常に行われることを確認します。

上記の手順を実行したところ、問題は解決されました。 Graph API へのリクエストが正常に送信され、Wiki.js のコンテンツ閲覧および編集が正常に行われていることが確認できました。

See Also