# ocr-extractor
**Repository Path**: juht/ocr-extractor
## Basic Information
- **Project Name**: ocr-extractor
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2025-10-14
- **Last Updated**: 2025-10-14
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
#
OCR识别服务部署文档
# 一、部署前准备
### 1.操作系统及配置要求
* 1台安装了linux 64位操作系统的服务器(物理机或虚拟机均可)
* 服务器能够出公网
* 系统防火墙和SeLinux已关闭
### 2.待部署的服务列表
### 3.拉取代码
* 可以通过git拉取源码
```shell
git clone https://e.coding.net/g-mgcq1547/mam/ocr-extractor.git
cd ocr-extractor
```
# 二、开始部署
### 登录服务器
#### 步骤一 拉取镜像
```shell
docker pull paddle:2.6.2-gpu-cuda12.0-cudnn8.9-trt8.6-python3.12
docker run --gpus all --name ocrextractor -it -v $PWD:/ocr-extractor -p 5000:5000 paddle:2.6.2-gpu-cuda12.0-cudnn8.9-trt8.6-python3.12 /bin/bash
docker exec -it ocrextractor /bin/bash
cd /ocr-extractor
```
#### 步骤二 修改配置
确认python版本
```shell
python --version
```
修改settings.ini,按注释说明进行修改
```
[DEFAULT]
Interface = 简体中文
Language = ch
Mode = accurate
[celery]
broker = redis://192.168.10.198:6379/0
backend = db+mysql://root:123456@192.168.10.198/video_ocr
```
#### 步骤三 安装配置supervisor
- vi /etc/supervisord.conf,写入以下内容:
```
[unix_http_server]
file=/var/tmp/supervisor.sock ; the path to the socket file
[supervisord]
logfile=/opt/supervisord.log ; main log file; default $CWD/supervisord.log
logfile_maxbytes=50MB ; max main logfile bytes b4 rotation; default 50MB
logfile_backups=10 ; # of main logfile backups; 0 means none, default 10
loglevel=info ; log level; default info; others: debug,warn,trace
pidfile=/opt/supervisord.pid ; supervisord pidfile; default supervisord.pid
nodaemon=yes ; start in foreground if true; default false,容器前台启动,如果是虚机部署的话,改成false
silent=false ; no logs to stdout if true; default false
minfds=1024 ; min. avail startup file descriptors; default 1024
minprocs=200 ; min. avail process descriptors;default 200
[rpcinterface:supervisor]
supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface
[supervisorctl]
serverurl=unix:///var/tmp/supervisor.sock ; use a unix:// URL for a unix socket
[include]
files = /etc/supervisord.d/*.ini
```
- 创建/etc/supervisord.d和/opt/supervisor/logs/目录
```shell
mkdir -p /etc/supervisord.d /opt/supervisor/logs/
```
- 在/etc/supervisord.d目录下创建文件ocr-extractor.ini,写入以下内容
```
[program:runserver]
command=sh startweb.sh
directory=/opt/ocr-extractor
user=root
autostart=true
autorestart=true
redirect_stderr=true
startsecs=20
stdout_logfile=/opt/supervisor/logs/runserver.log
loglevel=info
logfile_maxbytes=100MB
logfile_backups=3
[program:celery]
command=python -m startwork
directory=/opt/ocr-extractor
user=root
autorestart=true
redirect_stderr=true
startsecs=20
startretries=60
loglevel=info
stopasgroup=true
logfile_maxbytes=100MB
logfile_backups=3
stdout_logfile=/opt/supervisor/logs/celery.log
```
#### 步骤三 启动服务
```shell
cd /ocr-extractor
/usr/local/bin/supervisord -c /etc/supervisord.conf
查看服务是否已经运行
supervisorctl status
```
- 将supervisor做成服务
vim /usr/lib/systemd/system/supervisord.service,写入以下内容
```
[Unit] # Unit区块: 启动顺序与依赖关系
Description=Supervisor daemon # 当前配置文件的描述信息
After=network.target # 当前服务在那个服务后面启动 一般定义为网络服务启动后启动
StartLimitIntervalSec=0 # 是服务自动无限次重启的必须配置1
[Service] # Service区块: 启动行为
Type=forking # 定义启动类型
ExecStart=/usr/local/bin/supervisord -c /etc/supervisord.conf # 启动进程时执行的命令: 填写命令行启动supervisor服务的命令
ExecStop=/usr/local/bin/supervisorctl $OPTIONS shutdown # 停止服务命令
ExecReload=/usr/local/bin/supervisorctl $OPTIONS reload # 重启服务命令
KillMode=process # 定义如何停止supervisord服务
Restart=on-failure # 何时重启 # 值:always是服务自动无限次重启的必须配置2
RestartSec=60s # 重启等待时间 # 是服务自动无限次重启的必须配置3
[Install]
WantedBy=multi-user.target
```
- supervisord设置为开机自启动:
```shell
systemctl enable supervisord.service
systemctl start/restart/stop supervisor.service
```
```shell
curl http://localhost:5000
```
- supervisord设置为开机自启动:
```shell
systemctl enable supervisord.service
systemctl start/restart/stop supervisor.service
```