這兩種設定方式都支援 線上授權 和 本機授權,且都以
ubuntu:noble (24.04 LTS) 為基礎。
授權類型
線上授權
線上授權詳細資訊
線上授權詳細資訊
- 檔名模式:
XXXXXXXXXXXXXXXXXXXX.ABBYY.ActivationToken - 執行階段會對
*.abbyy.com進行驗證 —— 每次執行容器都需要網際網路連線。 - 凡是安裝了 Licensing Service 的環境,都必須符合下列要求:
- 有效的網際網路連線
- 允許對
*.abbyy.com的 HTTPS 輸出連線 (連接埠 443) - 系統
ca-certificates套件中包含 GoDaddy Trusted Root CA (ubuntu:noble已預先包含)
- 單一 Licensing Service 執行個體一次只能搭配 一個 線上授權運作。
本機授權
本機授權詳細資訊
本機授權詳細資訊
- 檔名模式:
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 — 單一容器
單一容器詳細資訊
單一容器詳細資訊
此選項在單一 container 中執行 Licensing Service 與 FRE worker。進入點會在背景中啟動 Licensing Service,短暫等待其就緒後,執行 CLI sample、列印輸出,並在結束時正常關閉所有處理序。適合本地測試、示範及 CI 作業,只需一個指令即可完成啟動與停止。
這是一個兩階段組建:
檔案
建立一個空目錄並加入以下檔案:Dockerfile— 建置整合映像檔 (如下方所列)entrypoint.sh— 啟動 LS、執行 CLI 範例,並輸出結果 (如下所示)docker-compose.yml— 建置並執行容器 (如下).env— 存放您的授權檔案名稱和密碼 (列於下方)
組建與執行
-
將
FRE*.sh安裝程式和授權檔案複製到您上方建立的目錄中。 -
建立一個
.env檔案,填入您的授權值 (見下方) 。 -
在該目錄下,執行以下命令以建置映像檔並啟動容器:
Demo.tif,並將已辨識文字列印至主控台。.env
docker-compose.yml
Dockerfile
這是一個兩階段組建:- 第 1 階段使用
gcc:8安裝 FRE,並編譯 CLI 範例。 - 第 2 階段會建立最精簡的
ubuntu:noble執行階段映像,並將 Licensing Service 二進位檔、FRE 執行階段、編譯後的範例,以及授權檔案複製到其中。
entrypoint.sh
設定方式 2 — 兩個容器
兩個容器的詳細說明
兩個容器的詳細說明
此選項在共用的 Docker Compose 網路上,以獨立的容器分別執行 Licensing Service 與 FRE worker。Worker 透過 TCP 與 Licensing Service 通訊,連線位址為
需要注意以下幾點:
這是一個兩階段組建:
這是一個兩階段組建:
Worker 的進入點比單一容器版本更簡單,因為它不需要管理 Licensing Service。Worker 只需執行範例並列印輸出結果。
ls:3023。建議用於生產環境部署。 將服務分別部署於獨立的容器中,表示若其中一個發生崩潰,Docker 可以單獨重新啟動該容器。此外,這也允許多個工作程序連接至同一個 Licensing Service。檔案
建立一個空目錄並加入以下檔案:Dockerfile_ls— 用於建置 Licensing Service 容器 (如下所列)Dockerfile_worker— 用於建置下方所列的 FRE worker 容器entrypoint.sh— 在 worker 中執行下方所列的 CLI 範例docker-compose.yml— 將這兩個容器串接在一起 (如下所列).env— 包含您的授權檔名和密碼 (格式與設定 1 相同)
組建並執行
-
將
FRE*.sh安裝程式和授權檔案複製到該目錄。 -
建立一個
.env檔案,並填入您的授權資訊。 -
在該目錄下執行:
Demo.tif 執行 CLI 範例並列印結果。docker-compose.yml
- 工作節點使用
depends_on: [ls],因此會先啟動 Licensing Service 容器。 - 這兩個服務都使用
restart: on-failure,因此可各自獨立重新啟動。 - worker 的
service_address建置參數為ls:3023— Docker Compose 內建的 DNS 會將ls解析為 Licensing Service 容器。 shm_size: 1g會設定在 worker 上,而不是設定在 Licensing Service 上,因為 FRE 需要共用記憶體。
Dockerfile_ls
這是一個兩階段組建:- 階段 1 會執行 FRE 安裝程式,並使用
--skip-local-license-activation以擷取 Licensing Service 的二進位檔。 - 第 2 階段會建立最精簡的
ubuntu:noble執行階段映像,開放連接埠3023,並以 PID 1 執行LicensingService /standalone。/standalone旗標會讓 Licensing Service 持續在前景執行,這是 Docker 中的正確做法 (前景處理序會將日誌輸出到 stdout,並在容器停止時正常結束) 。
Dockerfile_worker
這是一個兩階段組建:- 第 1 階段會使用
--developer-install與指向 Licensing Service 容器的--service-address安裝 FRE,然後編譯 CLI 範例。 - 第 2 階段會建立一個精簡的
ubuntu:noble執行階段映像,其中僅包含 FRE 二進位檔、已編譯的範例,以及示範用影像。由於 worker 是透過網路與ls容器通訊,因此不包含任何 Licensing Service 二進位檔。
entrypoint.sh
Worker 的進入點比單一容器版本更簡單,因為它不需要管理 Licensing Service。Worker 只需執行範例並列印輸出結果。自訂 CLI 範例
docker-compose.yml 中執行相同的預設指令:
-if— 輸入檔案-f— 輸出格式設定檔-of— 輸出檔案
編輯這一行,讓它指向其他輸入檔、輸出檔或格式設定檔。請參閱
FRE Code Samples Library 文件,查看 CLI 引數的完整清單。
/app,並讓 -if/-of 指向其中的檔案。
常見問題
shm_size: 1g是必要設定。 FRE 仰賴 POSIX 共用記憶體,而預設的 64MB/dev/shm配置並不足夠。上面的 compose 檔案已經在 worker 服務中設定好這個值。- 安裝程式和授權檔案必須位於 build context 中。 兩個 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。如果你使用不同的基礎映像,請相應確認套件清單。
