이 항목에서는 Linux의 Docker 컨테이너에서 ABBYY FineReader Engine 12를 실행하는 방법을 설명합니다. 이 항목에서는 두 가지 설정 옵션을 다룹니다.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에는 이미 포함됨)
- 단일 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 — 단일 컨테이너
단일 컨테이너 상세 정보
단일 컨테이너 상세 정보
이 옵션은 Licensing Service와 FRE 워커를 하나의 컨테이너에서 실행합니다. 진입점은 Licensing Service를 백그라운드에서 시작하고, 서비스가 구동될 때까지 잠시 대기한 후 CLI 샘플을 실행하여 출력 결과를 표시하고, 종료 시 모든 프로세스를 정상적으로 종료합니다.명령 하나로 시작과 중지를 처리하고 싶은 로컬 테스트, 데모, 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 — 두 개의 컨테이너
두 개의 컨테이너 세부 정보
두 개의 컨테이너 세부 정보
이 옵션은 Licensing Service와 FRE 워커를 공유 Docker Compose 네트워크상의 별도 컨테이너에서 실행합니다. 워커는 TCP를 통해
몇 가지 참고 사항:
이것은 2단계 빌드입니다:
2단계 빌드입니다:
워커의 진입점은 Licensing Service를 관리하지 않으므로 단일 컨테이너 버전보다 간단합니다. 워커는 샘플을 실행하고 출력 결과를 표시하기만 합니다.
ls:3023으로 Licensing Service와 통신합니다.프로덕션 배포에 권장됩니다. 서비스를 별도의 컨테이너에서 실행하면 충돌 발생 시 Docker가 각 서비스를 독립적으로 재시작할 수 있습니다. 또한 여러 워커가 동일한 Licensing Service에 연결하는 것도 가능합니다.파일
빈 디렉터리를 만들고 다음 파일을 추가합니다.Dockerfile_ls— Licensing Service 컨테이너를 빌드합니다(아래 목록에 있음)Dockerfile_worker— FRE 워커 컨테이너를 빌드합니다(아래 목록 참조)entrypoint.sh— worker에서 CLI 샘플을 실행합니다(아래에 나열됨)docker-compose.yml— 아래에 나열된 두 컨테이너를 서로 연결합니다.env— 라이선스 파일 이름과 비밀번호를 저장합니다(Setup 1과 같은 형식)
빌드 및 실행
-
FRE*.sh설치 파일과 라이선스 파일을 디렉터리에 복사합니다. -
라이선스 값을 포함하는
.env파일을 만드세요. -
해당 디렉터리에서 다음 명령을 실행합니다:
Demo.tif를 대상으로 CLI 샘플을 실행하고 결과를 출력합니다.docker-compose.yml
- 워커는
depends_on: [ls]를 사용하므로 Licensing Service 컨테이너가 먼저 시작되도록 설정됩니다. - 두 서비스 모두
restart: on-failure를 사용하므로 각 서비스가 서로 독립적으로 다시 시작될 수 있습니다. - 워커의
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을 노출하며, PID 1로LicensingService /standalone를 실행합니다./standalone플래그는 Licensing Service가 포그라운드에서 계속 실행되도록 하며, 이는 Docker에서 올바른 방식입니다(포그라운드 프로세스는 stdout에 로그를 기록하고 컨테이너가 중지되면 정상적으로 종료됩니다).
Dockerfile_worker
2단계 빌드입니다:- 1단계에서는
--developer-install및--service-address가 Licensing Service 컨테이너를 가리키도록 지정해 FRE를 설치한 다음, CLI 샘플을 컴파일합니다. - 2단계에서는 FRE 바이너리, 컴파일된 sample, 데모 이미지만 포함하는 최소한의
ubuntu:noble런타임 이미지를 생성합니다. 워커가 네트워크를 통해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 서비스에 이 값을 이미 설정해 두었습니다.- installer와 라이선스 파일은 build context에 있어야 합니다. 두 Dockerfile 모두
COPY FRE*.sh와 라이선스 파일을 사용하므로, 빌드하는 디렉터리에 해당 파일이 없으면 빌드가 즉시 실패합니다. 런타임에 라이선스 파일을 마운트하지 마세요. 라이선스는 빌드 중에 활성화됩니다. - 온라인 라이선스는 builder와 runtime 모두에서 외부 네트워크로 나가는 연결이 필요합니다. builder는 라이선스를 활성화하는 데 필요하고, runtime의 Licensing Service는 라이선스 유효성을 계속 검증하는 데 필요합니다.
- 라이선스 파일이나 installer를 커밋하지 마세요. 소스 제어에서는
.env,*.ABBYY.*,FRE*.sh를 ignore 목록에 추가하고, 그 영향과 위험을 충분히 이해하지 못한 상태에서는 공개되는 어떤 이미지에도 포함하지 마세요. - 이 예제에서는
ubuntu:noble(24.04 LTS)을 사용합니다. 이전 문서에서는 이미 지원이 종료된 Ubuntu bionic을 언급했습니다. 패키지 이름은 Ubuntu 릴리스마다 다릅니다. 예를 들어libgcc-8-dev는 이제libgcc-s1이고libstdc++-8-dev는 이제libstdc++6입니다. 다른 base image를 사용하는 경우 그에 맞게 패키지 목록을 확인하세요.
