メインコンテンツまでスキップ

トラブルシューティング

セットアップ中に発生しやすいトラブルと、その対処方法をまとめています。問題が発生した際は、まず 症状別索引 から該当する症状を探し、原因と対処方法をご確認ください。

症状別索引​

症状主な原因参照
docker compose build に失敗する資材未配置 / プロキシ / ネットワーク資材配置忘れ / Proxy 起因
docker compose up -d 直後にコンテナがすぐ落ちるポート競合 / 資材未配置 / 初期化エラーポート競合 / Cassandra・Solr 初期化エラー
http://127.0.0.1/imart/system/login に接続できないhttpd / resin 未起動 / Resin の起動完了前共通トラブル
システム管理画面にアクセスできるがテナント画面にログインできないテナント環境セットアップ未実施 / Cassandra 設定不一致テナント環境セットアップ
war のビルドに失敗するGit LFS 未取得 / プロキシGit LFS 未取得 / Proxy 起因
メールが送信できない / mailpit に何も届かないメール設定 / Resin の SMTP 接続失敗mailpit にメールが届かない
クラスタ構成で片方の Resin だけ繋がらない片系の Resin の起動不良クラスタ構成 固有のトラブル

共通トラブル​

ポート競合​

本環境で使用するポートを既存のサービスが使用していると、コンテナの起動に失敗します。使用ポートは以下のとおりです。

  • 80(Apache HTTPd)
  • 8080(Resin / Resin1)
  • 8081(Resin2、クラスタ構成のみ)
  • 9000(Resin / Resin1 のサーバサイドスクリプトのデバッグ)
  • 9001(Resin2 のサーバサイドスクリプトのデバッグ、クラスタ構成のみ)
  • 8983(Solr)
  • 9160(Cassandra)
  • 8188(Accel Studio テスト機能 テスト実行エージェント)
  • 8025(mailpit)

データベースのポートは選択したブランチに依存します。選択したブランチの README.md を参照してください(例: PostgreSQL の場合は 5432)。

該当ポートを開放するか、compose.yaml のポートマッピングを変更してください。

Git LFS 未取得​

Git LFS が未インストール、または未初期化のままクローンすると、imm/lib / juggling-build-war/lib 配下のファイルが LFS ポインタファイル(数百バイト)のままになります。

git lfs install
git lfs pull

を実行してください。それでも改善しない場合は、リポジトリを取り直すこともご検討ください。

Proxy 起因​

プロキシ環境では、Git・Docker Desktop・コンテナ内のミドルウェアそれぞれに設定が必要な場合があります。

  • Git: git config --global http.proxy http://proxy:port / https.proxy http://proxy:port
  • Docker Desktop: Settings > Resources > Proxies、または <ユーザホーム>/.docker/settings.json / daemon.json の proxies
  • Resin(コンテナ内): resin/overwrite/conf/resin.properties または resin.xml のプロキシ設定
    • resin.xml を編集した場合は、イメージの再ビルド(docker compose build --no-cache)とコンテナの再作成(docker compose up -d)が必要です。

資材配置忘れ​

以下の資材の配置漏れがないかを確認してください。

構成配置先資材
スタンドアロン / クラスタresin/Resin Pro
スタンドアロン / クラスタcassandra/Apache Cassandra
スタンドアロン / クラスタsolr/Solr インストーラ
スタンドアロン / クラスタaccelstudio-testing-agent/Accel Studio テスト機能 テスト実行エージェント

各資材の具体的なファイル名は、選択したブランチの README.md を参照してください。

利用するデータベースが Oracle の場合は、上記以外に追加の手動配置が必要です(Oracle の JDBC ドライバ)。詳細は選択したブランチの README.md を参照してください。

ビルドエラーのログ末尾で、どの資材の COPY / 展開に失敗しているかを特定できます。

Cassandra・Solr 初期化エラー​

Cassandra / Solr は初回起動時にデータディレクトリ(data/cassandra / data/solr)を初期化します。以前の構築で残ったデータと、新しいビルドのバージョンが不整合な場合に起動エラーになることがあります。

その場合は、コンテナを停止のうえ、データディレクトリを削除して再起動してください。詳細は data/ ディレクトリの説明と活用 を参照してください。

初期化はデータを失います

data/cassandra / data/solr 等を削除すると、それまでの蓄積データは失われます。必要に応じて削除前に退避してください。

mailpit にメールが届かない​

iAP から送信したメールが mailpit の Web UI(http://127.0.0.1:8025 )に表示されない場合は、以下を確認してください。

  • docker compose ps で mailpit の STATUS が Up であること。
  • docker compose logs mailpit に SMTP 受信時のログが出力されていること(出ていなければ送信側から接続が届いていません)。
  • juggling-build-war/overwrite/conf/javamail-config/javamail-config.xml の <smtp-server> で host="mailpit" / port="1025" が設定されていること。

javamail-config.xml を変更した場合は、war の再ビルドと Resin の再起動が必要です(→ data/ ディレクトリの説明と活用「差し替え(IM-Juggling プロジェクトの差し替え)」)。

クラスタ構成 固有のトラブル​

片系の Resin のみ繋がらない​

resin1 のみ、または resin2 のみが起動していない可能性があります。docker compose ps で両 Resin の STATUS を確認したうえで、対象 Resin のログを docker compose logs -f resin1 / docker compose logs -f resin2 で確認してください。

Resin への振り分けに偏りがある​

ブラウザ側のセッション維持(スティッキーセッション)等により、特定の Resin に偏ることがあります。ブラウザのセッションをクリアする、または別ブラウザ・シークレットウィンドウからアクセスして分散を確認してください。

Storage 領域共有による不整合​

data/resin/storage は resin1 / resin2 の双方からマウントされる共有領域です。手動でファイルを編集・削除する際は、両 Resin の状態を考慮してください。

解決しないときの情報収集​

問題が解決しない場合は、以下の情報を採取してください。

# 各コンテナの状態
docker compose ps

# 各サービスのログ(事象に応じて対象サービスを指定)
docker compose logs --tail=200 resin # スタンドアロン構成の場合
docker compose logs --tail=200 resin1 # クラスタ構成の場合
docker compose logs --tail=200 resin2 # クラスタ構成の場合
docker compose logs --tail=200 httpd
docker compose logs --tail=200 <db> # データベース(<db> は選択したブランチの DB サービス名、例: postgresql)
docker compose logs --tail=200 cassandra
docker compose logs --tail=200 solr

# コンテナの詳細情報
docker inspect <コンテナ名>

それでも解決しない場合は、データを初期化したうえで再構築することも選択肢になります。初期化の手順は data/ ディレクトリの説明と活用 を参照してください。