このトピックでは、Linux 上の Docker コンテナー内で ABBYY FineReader Engine 12 を実行する方法について説明します。 このトピックでは、次の 2 つのセットアップ オプションを取り上げます。Documentation Index
Fetch the complete documentation index at: https://docs.abbyy.com/llms.txt
Use this file to discover all available pages before exploring further.
どちらのセットアップ オプションでも オンライン ライセンス と ローカル ライセンス をサポートしており、どちらも
ubuntu:noble (24.04 LTS) をベースにしています。
ライセンスの種類
オンライン ライセンス
オンライン ライセンスの詳細
オンライン ライセンスの詳細
- ファイル名のパターン:
XXXXXXXXXXXXXXXXXXXX.ABBYY.ActivationToken - 実行時に
*.abbyy.comに対して検証されます — コンテナーを起動するたびにインターネット接続が必要です。 - Licensing Service がインストールされている環境の要件:
- 有効なインターネット接続
*.abbyy.comへの外向き HTTPS 通信 (ポート 443) が許可されていること- システムの
ca-certificatesパッケージに GoDaddy Trusted Root CA が含まれていること (ubuntu:nobleにはすでに含まれています)
- 1 つの Licensing Service インスタンスで同時に利用できるオンライン ライセンスは 1 つ のみです。
ローカルライセンス
ローカルライセンスの詳細
ローカルライセンスの詳細
- ファイル名パターン:
XXXX-XXXX-XXXX-XXXX-XXXX-XXXX.ABBYY.LocalLicense - FRE のインストール中にビルド時点でアクティブ化され、その後イメージに埋め込まれます。
- ランタイム時にインターネット接続は不要です — エアギャップ環境に適しています。
はじめに
- Docker および Docker Compose がインストールされていること (
docker composev2 構文) - ABBYY FineReader Engine 12 Linux インストーラー:
FRE*.sh - ライセンスファイル (
.ABBYY.ActivationTokenまたは.ABBYY.LocalLicense) とパスワード
セットアップ オプション 1 — 単一コンテナー
単一コンテナーの詳細
単一コンテナーの詳細
このオプションは、Licensing ServiceとFREワーカーを1つのコンテナーで実行します。エントリーポイントはバックグラウンドでLicensing Serviceを起動し、起動が完了するまで少し待機した後、CLIサンプルを実行して出力を表示し、終了時にすべてのプロセスを正常にシャットダウンします。ローカルテスト、デモ、および1つのコマンドで起動・停止を完結させたいCIジョブに推奨します。
これは2段階ビルドです:
ファイル
空のディレクトリを作成し、以下のファイルを追加します。Dockerfile— 統合イメージ (以下に記載) をビルドしますentrypoint.sh— LS を起動し、CLI サンプルを実行して、結果 (以下に示す) を出力しますdocker-compose.yml— コンテナーをビルドして実行します (下記参照).env— ライセンスファイル名とパスワード (以下に記載) を格納します
ビルドと実行
-
先ほど作成したディレクトリに、
FRE*.shインストーラーとライセンスファイルをコピーします。 -
ライセンス値を設定した
.envファイルを作成します (以下を参照) 。 -
そのディレクトリで、次のコマンドを実行し、イメージをビルドしてコンテナーを起動します。
Demo.tifをOCRで処理し、認識されたテキストをコンソールに出力します。.env
docker-compose.yml
Dockerfile
これは2段階ビルドです:- ステージ 1 では、
gcc:8を使用して FRE をインストールし、CLI サンプルをコンパイルします。 - ステージ2では、最小限の
ubuntu:nobleランタイムイメージを作成し、Licensing Serviceのバイナリ、FREランタイム、コンパイル済みのサンプル、ライセンスファイルをコピーします。
entrypoint.sh
セットアップ オプション 2 — 2 つのコンテナー
2 コンテナー構成の詳細
2 コンテナー構成の詳細
このオプションでは、Licensing Service と FRE ワーカーを共有 Docker Compose ネットワーク上の別々のコンテナーで実行します。ワーカーは TCP を介して
いくつか注意点があります:
これは2段階ビルドです:
これは2段階ビルドです:
ワーカーのエントリーポイントは、Licensing Serviceを管理しないため、単一コンテナー版よりもシンプルです。ワーカーはサンプルを実行して出力を表示するだけです。
ls:3023 で Licensing Service と通信します。本番環境へのデプロイに推奨。 サービスを別々のコンテナーで実行することで、いずれかがクラッシュした場合にDockerが独立して再起動できます。また、複数のワーカーが同一のLicensing Serviceに接続することも可能になります。ファイル
空のディレクトリを作成し、以下のファイルを追加します。Dockerfile_ls— 以下に記載の Licensing Service コンテナーをビルドしますDockerfile_worker— 以下に示すFRE worker コンテナーをビルドしますentrypoint.sh— ワーカーで CLI サンプルを実行します (下記参照)docker-compose.yml— 2 つのコンテナーを接続します (以下に記載).env— ライセンスファイル名とパスワードを格納します (形式はセットアップ 1 と同じ)
ビルドと実行
-
FRE*.shのインストーラーとライセンスファイルをそのディレクトリにコピーします。 -
ライセンス値を記載した
.envファイルを作成します。 -
そのディレクトリで、次を実行します:
Demo.tif に対して CLI サンプルを実行し、結果を出力します。docker-compose.yml
- worker では
depends_on: [ls]を使用しているため、Licensing Service コンテナーが先に起動します。 - 両方のサービスで
restart: on-failureを使用しているため、それぞれが独立して復旧できます。 - worker の
service_addressビルド引数はls:3023です — Docker Compose の組み込み DNS により、lsは Licensing Service コンテナーを指すように名前解決されます。 - FRE では共有メモリが必要なため、
shm_size: 1gは Licensing Service ではなく、worker に設定されます。
Dockerfile_ls
これは2段階ビルドです:- ステージ 1 では、Licensing Service のバイナリを抽出するため、
--skip-local-license-activationを指定して FRE インストーラーを実行します。 - ステージ 2 では、最小構成の
ubuntu:nobleランタイムイメージを作成し、ポート3023を公開して、LicensingService /standaloneを PID 1 として実行します。/standaloneフラグを指定すると、Licensing Service はフォアグラウンドで実行されたままになります。これは Docker では適切な方法です (フォアグラウンドのプロセスは stdout にログを出力し、コンテナーが停止されると正常に終了します) 。
Dockerfile_worker
これは2段階ビルドです:- ステージ 1 では、Licensing Service コンテナーを指す
--service-addressと--developer-installを指定して FRE をインストールし、その後 CLI サンプルをコンパイルします。 - ステージ 2 では、FRE のバイナリ、コンパイル済みのサンプル、デモ用イメージのみを含む最小構成の
ubuntu:nobleランタイムイメージを作成します。worker はネットワーク経由でlsコンテナーと通信するため、Licensing Service のバイナリは含まれません。
entrypoint.sh
ワーカーのエントリーポイントは、Licensing Serviceを管理しないため、単一コンテナー版よりもシンプルです。ワーカーはサンプルを実行して出力を表示するだけです。CLI サンプルのカスタマイズ
docker-compose.yml では同じデフォルトコマンドが実行されます。
-if— 入力ファイル-f— 出力形式プロファイル-of— 出力ファイル
この行を編集して、別の入力ファイル、出力ファイル、または形式プロファイルを指定してください。CLI 引数の完全な一覧については、
FRE Code Samples Library のドキュメントを参照してください。
/app にバインド マウントし、-if/-of でその中のファイルを指定してください。
注意点
shm_size: 1gは必須です。 FRE は POSIX 共有メモリに依存しており、デフォルトの 64MB の/dev/shm割り当てでは足りません。上記の compose ファイルでは、worker サービスに対してすでにこれが設定されています。- インストーラーとライセンス ファイルはビルド コンテキスト内に置く必要があります。 どちらの Dockerfile でも
COPY FRE*.shとライセンス ファイルを使用します。これらがビルド元のディレクトリにない場合、ビルドは即座に失敗します。実行時にライセンスをマウントしないでください。ライセンスはビルド中にアクティブ化されます。 - オンライン ライセンスでは、builder と ランタイム の両方から外向きのネットワーク接続が必要です。 builder ではアクティブ化のために必要であり、ランタイム の Licensing Service では検証を継続するために必要です。
- ライセンス ファイルやインストーラーはコミットしないでください。 ソース管理では、
.env、*.ABBYY.*、FRE*.shを無視リストに追加し、その影響とリスクを理解していない限り、公開するイメージには含めないでください。 - これらの例では
ubuntu:noble(24.04 LTS) を使用しています。 以前のドキュメントでは Ubuntu bionic を参照していましたが、これはすでにサポート終了です。Ubuntu のリリースによってパッケージ名は異なります。たとえば、libgcc-8-devは現在libgcc-s1、libstdc++-8-devは現在libstdc++6です。別のベース イメージを使用する場合は、それに応じてパッケージ一覧を確認してください。
