Docker 与 docker-compose
通过 Docker 在 Linux 和 MacOS 上安装 A-Parser 是推荐的方式,我们准备了一个镜像,其中包含了 A-Parser 和 Headless Chrome 运行所需的所有依赖项和库。
安装前准备
Docker
需要在系统中安装 Docker。
安装与启动
下载并解压 A-Parser 发行版:
curl -O https://a-parser.com/members/onetime/ce42f308eaa577b5/aparser-linux-x64.tar.gz
tar zxf aparser-linux-x64.tar.gz
rm -f aparser-linux-x64.tar.gz
备注
通过适用于 Linux 的一次性链接进行下载。 您需要在会员中心的 A-Parser -> 下载 选项卡中获取该链接
使用以下命令启动:
docker run --rm --name aparser -v $(pwd)/aparser:/app -p 9091:9091 -t aparser/runtime ./aparser -foreground
选项 -foreground 会直接在终端输出日志文件内容:
Apr 27 07:06:53.10427 [master] foreground mode
Apr 27 07:06:54.06409 [master] Found local Chromium: /app/dist/nodejs/node_modules/puppeteer/.local-chromium/linux-856583/chrome-linux/chrome
Apr 27 07:06:55.36487 [master] NodeJS console: [Rank::CMS] total loaded 1446 apps
Apr 27 07:07:19.01377 [master] Start ProxyChecker nocheck
Apr 27 07:07:19.24418 [master] Start ProxyChecker default
Apr 27 07:07:19.62635 [master] A-Parser v1.2.1176-linux-x64 started, tasks: 0 / 2, memory total: 1989 MB, available: 610 MB
启动后,可以通过以下地址访问 A-Parser:http://127.0.0.1:9091
如需在后台运行容器,请使用以下命令:
docker run --rm --name aparser -v $(pwd)/aparser:/app -p 9091:9091 -t -d aparser/runtime ./aparser
针对多线程的 Linux 优化
默认情况下,容器内部也存在打开文件/套接字数量的限制。要在通过 Docker 启动时将限制增加到 10240,请使用 --ulimit 选项:
docker run --rm --name aparser -v $(pwd)/aparser:/app -p 9091:9091 --ulimit nofile=10240:10240 -t -d aparser/runtime ./aparser
可以在 docker-compose.yml 中进行类似的设置:
services:
a-parser:
image: aparser/runtime:latest
command: ./aparser
restart: always
volumes:
- ./aparser:/app
ports:
- 9091:9091
ulimits:
nofile:
soft: 10240
hard: 10240
此外,建议在宿主机系统上执行针对多线程的 Linux 优化。
更新 A-Parser
停止容器:
docker stop aparser
更新 A-Parser:
docker run --rm --name aparser -v $(pwd)/aparser:/app -p 9091:9091 -t aparser/runtime ./aparser -foreground -doupdate
更新完成后启动 A-Parser
备注
您也可以通过界面或一次性链接进行更新
docker-compose
下载并解压 A-Parser 发行版:
curl -O https://a-parser.com/members/onetime/ce42f308eaa577b5/aparser.tar.gz
tar zxf aparser.tar.gz
rm -f aparser.tar.gz
创建 docker-compose.yml 文件:
version: '3'
services:
a-parser:
image: aparser/runtime:latest
command: ./aparser
restart: always
volumes:
- ./aparser:/app
ports:
- 9091:9091
启动 A-Parser:
docker compose up -d
TODO: (下一步) #### 通过 Let's Encrypt 配置 HTTPS