Docker и docker-compose
Установка A-Parser на Linux и MacOS через docker является рекомендуемым способом, мы подготовили образ, который включает все необходимые зависимости и библиотеки для работы A-Parser и Headless Chrome
Перед установкой
- Перед установкой нужно прописать IP в Личном кабинете.
- Необходимо установить 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
Запуск в foreground-режиме
Запустите A-Parser в foreground-режиме, чтобы видеть логи в терминале:
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
Тюнинг потоков при запуске через Docker
По умолчанию внутри контейнера действует ограничение на число открытых файлов/сокетов. Чтобы увеличить лимит до 10240 при запуске через Docker, используйте опцию --ulimit:
docker run --rm --name aparser -v $(pwd)/aparser:/app -p 9091:9091 --ulimit nofile=10240:10240 -t -d aparser/runtime ./aparser
Дополнительно рекомендуется выполнить тюнинг Linux для большего числа потоков на хост‑системе.
Обновление A-Parser в Docker-контейнере
Остановите контейнер:
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
Вы также можете воспользоваться обновлением через интерфейс или по одноразовой ссылке
Запуск в Headful режиме
Для парсинга сайтов, требующих запуск браузера в headful режиме (с виртуальным дисплеем), используйте образ aparser/runtime:headful.
Для перехода с обычного образа на headful:
Остановите контейнер:
docker stop aparser
Загрузите headful образ:
docker pull aparser/runtime:headful
Запустите A-Parser с новым образом:
docker run --rm --name aparser -v $(pwd)/aparser:/app -p 9091:9091 -t -d aparser/runtime:headful ./aparser
Для docker-compose замените образ в docker-compose.yml:
image: aparser/runtime:headful
Затем выполните:
docker compose up -d
После запуска в настройках парсера включите Chrome headless: 0. В логе при запуске Chrome должно отображаться Headful.
novnc сервер доступен на порту 5900 для визуального контроля, пароль задаётся через переменную VNC_PASSWORD (по умолчанию: docker).
Запуск через docker-compose
Пример docker-compose.yml
Создайте файл docker-compose.yml:
version: '3'
services:
a-parser:
image: aparser/runtime:latest
command: ./aparser
restart: always
volumes:
- ./aparser:/app
ports:
- 9091:9091
Запуск через docker-compose
Запустите A-Parser:
docker compose up -d
Тюнинг потоков в docker-compose
При запуске через docker-compose внутри контейнера действует ограничение на число открытых файлов/сокетов. Чтобы увеличить лимит до 10240, добавьте в сервис a-parser блок ulimits:
services:
a-parser:
image: aparser/runtime:latest
command: ./aparser
restart: always
volumes:
- ./aparser:/app
ports:
- 9091:9091
ulimits:
nofile:
soft: 10240
hard: 10240
Также рекомендуется выполнить тюнинг Linux для большего числа потоков на хост‑системе.