トラブルシューティング
セットアップ中に発生しやすいトラブルと、その対処方法をまとめています。問題が発生した際は、まず 症状別索引 から該当する症状を探し、原因と対処方法をご確認ください。
症状別索引
| 症状 | 主な原因 | 参照 |
|---|---|---|
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/ ディレクトリの説明と活用 を参照してください。