設定
ライセンスは複数行のテキストです。
$(cat acme.fineparserlicense) で渡すか、Kubernetes Secret から渡してください。Docker の .env ファイルは複数行の値を扱えないため、この変数には使用できません。
テレメトリには、ストリームを確認したり、独自のコレクターへコピーを送信したりするための専用の環境変数があります。ストリームの確認とコピーを参照してください。
コンテナーごとに1つの構成
認識設定はリクエストごとに変更することはできません。コンテナーが受け取る文書はすべて、起動時に指定されたモードと言語で処理されます。 文書セットごとに異なる設定が必要な場合は、構成ごとにコンテナーを1つずつ実行し、各リクエストを該当するコンテナーへルーティングしてください。この振り分けは、リバースプロキシや独自のアプリケーションコードで、ソースやファイルの種類など、その文書についてすでに分かっている情報をもとに判断できます。ストレージ
結果は出力ディレクトリに{jobId}/{name} として書き込まれ、同じ場所にすべてのジョブを追跡する小規模なジョブデータベースが作成されます。イメージでは /app/output をボリュームとして宣言しています。ここには名前付きボリュームまたはホストのディレクトリをマウントしてください。マウントしない場合、Docker は匿名ボリュームを作成するため、コンテナーを削除すると結果が失われます。
/app/output にマウントするホストディレクトリには、そのユーザーからの書き込み権限が必要です。
出力ディレクトリ 1 つにつき、コンテナーは 1 つです。ジョブデータベースは開いている間ロックされるため、同じボリュームを指す 2 つ目のコンテナーは起動できません。複数のコンテナーを実行する場合は、それぞれに専用のボリュームを割り当ててください。
アップロードされたファイルは、認識処理を待機している間だけスクラッチディレクトリに保持され、処理が完了すると直ちに削除されます。スクラッチディレクトリ内のデータがジョブの終了後まで残ることはないため、ボリュームは不要です。
ARM 上での実行
FineParser のイメージは、現在linux/amd64 向けにのみビルドされています。Apple シリコン (M シリーズ) 搭載の Mac などの ARM ホストでは、Docker は互換モードでイメージを実行することになります。docker run に --platform linux/amd64 を指定してください。
コンテナーの停止
コンテナーの停止タイムアウトは 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 を参照してください。
License の確認
サーバーモードでは、/healthz を呼び出します。License が適用されたコンテナーは ready: true を返します。
metering ready for instance … という行が出力されているか確認してください。
Licenseがない場合、どちらのモードも動作しません。サーバーは異常 (unhealthy) を報告し、何も処理しません。
