Skip to main content
FineParser の構成は、コンテナーの起動時に環境変数とコマンドラインフラグで一度だけ行います。すべての設定は環境変数とフラグの両方で指定でき、両方を指定した場合はフラグが優先されます。設定内容はプロセスが終了するまで有効です。

設定

ライセンスは複数行のテキストです。$(cat acme.fineparserlicense) で渡すか、Kubernetes Secret から渡してください。Docker の .env ファイルは複数行の値を扱えないため、この変数には使用できません。 テレメトリには、ストリームを確認したり、独自のコレクターへコピーを送信したりするための専用の環境変数があります。ストリームの確認とコピーを参照してください。

コンテナーごとに1つの構成

認識設定はリクエストごとに変更することはできません。コンテナーが受け取る文書はすべて、起動時に指定されたモードと言語で処理されます。 文書セットごとに異なる設定が必要な場合は、構成ごとにコンテナーを1つずつ実行し、各リクエストを該当するコンテナーへルーティングしてください。この振り分けは、リバースプロキシや独自のアプリケーションコードで、ソースやファイルの種類など、その文書についてすでに分かっている情報をもとに判断できます。

ストレージ

結果は出力ディレクトリに {jobId}/{name} として書き込まれ、同じ場所にすべてのジョブを追跡する小規模なジョブデータベースが作成されます。イメージでは /app/output をボリュームとして宣言しています。ここには名前付きボリュームまたはホストのディレクトリをマウントしてください。マウントしない場合、Docker は匿名ボリュームを作成するため、コンテナーを削除すると結果が失われます。
コンテナーは非 root ユーザーとして実行されるため、/app/output にマウントするホストディレクトリには、そのユーザーからの書き込み権限が必要です。 出力ディレクトリ 1 つにつき、コンテナーは 1 つです。ジョブデータベースは開いている間ロックされるため、同じボリュームを指す 2 つ目のコンテナーは起動できません。複数のコンテナーを実行する場合は、それぞれに専用のボリュームを割り当ててください。 アップロードされたファイルは、認識処理を待機している間だけスクラッチディレクトリに保持され、処理が完了すると直ちに削除されます。スクラッチディレクトリ内のデータがジョブの終了後まで残ることはないため、ボリュームは不要です。

ARM 上での実行

FineParser のイメージは、現在 linux/amd64 向けにのみビルドされています。Apple シリコン (M シリーズ) 搭載の Mac などの ARM ホストでは、Docker は互換モードでイメージを実行することになります。docker run--platform linux/amd64 を指定してください。
このフラグを指定しない場合、Docker はバージョンに応じて、コンテナーの起動を拒否するか、プラットフォームの不一致に関する警告を表示します。 エミュレーションはネイティブ実行よりも低速です。1 ページあたりの認識処理には x86-64 ホストよりも時間がかかることを想定し、ベンチマーク用ではなく開発用のセットアップとしてお使いください。イメージのネイティブ ARM ビルドは現在対応中で、提供され次第このフラグは不要になります。

コンテナーの停止

コンテナーの停止タイムアウトは 60 秒に設定してください。正常に停止する場合、FineParser は処理中のリクエストを完了させ、テレメトリをフラッシュしてから終了します。Docker のデフォルトの 10 秒では、この処理が途中で打ち切られてしまいます。docker run では --stop-timeout 60 を、Kubernetes では terminationGracePeriodSeconds: 60 を指定してください。停止時にキューに入っているジョブや実行中のジョブがどうなるかについては、再起動とシャットダウンを参照してください。

ネットワーク

FineParser はコンテナー内のポート 8080 で待ち受けます。リクエストを送信できるようにするには、-p HOST:CONTAINER でそのポートをホストに公開してください。-p 8080:8080 を指定すると、ネットワーク上のどのマシンからでもホストのポート 8080 経由で API にアクセスでき、-p 127.0.0.1:9000:8080 を指定すると localhost のポート 9000 のみに限定されます。構文の詳細については、Docker ドキュメントの Published ports を参照してください。
コンテナーから ABBYY のライセンスサーバーに接続できる必要があります。この外向きの接続がないと、FineParser はドキュメントを解析できません。ネットワーク要件に記載されているアドレス範囲を、ファイアウォールまたは送信プロキシで許可してください。外部への接続が一切ない環境については、FineParser Enterprise を参照してください。

License の確認

サーバーモードでは、/healthz を呼び出します。License が適用されたコンテナーは ready: true を返します。
CLIモードでは、コンテナーの出力でページ数の前に metering ready for instance … という行が出力されているか確認してください。 Licenseがない場合、どちらのモードも動作しません。サーバーは異常 (unhealthy) を報告し、何も処理しません。