Docker e docker-compose
A instalação do A-Parser no Linux e MacOS via docker é o método recomendado, preparamos uma imagem que inclui todas as dependências e bibliotecas necessárias para o funcionamento do A-Parser e Headless Chrome
Antes da instalação
- Antes da instalação, você deve registrar o IP na Área de Membros.
- É necessário instalar o Docker em seu sistema.
Download do instalador
Baixe e descompacte a distribuição do 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
O download ocorre através de um link de uso único para Linux. Você deve obtê-lo na Área de Membros, aba A-Parser -> Downloads
Execução via Docker
Execução em modo foreground
Execute o A-Parser em modo foreground para ver os logs no terminal:
docker run --rm --name aparser -v $(pwd)/aparser:/app -p 9091:9091 -t aparser/runtime ./aparser -foreground
A opção -foreground exibe o conteúdo do arquivo de log diretamente no terminal:
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
Após a inicialização, o A-Parser estará disponível no endereço http://127.0.0.1:9091
Execução em segundo plano
Para iniciar o contêiner em segundo plano, use o comando:
docker run --rm --name aparser -v $(pwd)/aparser:/app -p 9091:9091 -t -d aparser/runtime ./aparser
Ajuste de threads ao executar via Docker
Por padrão, dentro do contêiner, há uma restrição no número de arquivos/sockets abertos. Para aumentar o limite para 10240 ao executar via Docker, use a opção --ulimit:
docker run --rm --name aparser -v $(pwd)/aparser:/app -p 9091:9091 --ulimit nofile=10240:10240 -t -d aparser/runtime ./aparser
Adicionalmente, recomenda-se realizar o ajuste do Linux para maior número de threads no sistema hospedeiro.
Atualização do A-Parser no contêiner Docker
Pare o contêiner:
docker stop aparser
Atualize o A-Parser:
docker run --rm --name aparser -v $(pwd)/aparser:/app -p 9091:9091 -t aparser/runtime ./aparser -foreground -doupdate
Após a conclusão da atualização, inicie o A-Parser
Você também pode utilizar a atualização pela interface ou por link de uso único
Execução em modo Headful
Para a extração de dados de sites que exigem a execução do navegador em modo headful (com display virtual), utilize a imagem aparser/runtime:headful.
Para migrar da imagem comum para a headful:
Pare o contêiner:
docker stop aparser
Baixe a imagem headful:
docker pull aparser/runtime:headful
Inicie o A-Parser com a nova imagem:
docker run --rm --name aparser -v $(pwd)/aparser:/app -p 9091:9091 -t -d aparser/runtime:headful ./aparser
Para docker-compose, substitua a imagem no docker-compose.yml:
image: aparser/runtime:headful
Em seguida, execute:
docker compose up -d
Após a inicialização, ative nas configurações do scraper a opção Chrome headless: 0. No log, ao iniciar o Chrome, deve ser exibido Headful.
O servidor novnc está disponível na porta 5900 para controle visual, a senha é definida através da variável VNC_PASSWORD (padrão: docker).
Execução via docker-compose
Exemplo de docker-compose.yml
Crie o arquivo docker-compose.yml:
version: '3'
services:
a-parser:
image: aparser/runtime:latest
command: ./aparser
restart: always
volumes:
- ./aparser:/app
ports:
- 9091:9091
Execução via docker-compose
Inicie o A-Parser:
docker compose up -d
Ajuste de threads no docker-compose
Ao executar via docker-compose, há uma restrição no número de arquivos/sockets abertos dentro do contêiner. Para aumentar o limite para 10240, adicione o bloco ulimits ao serviço a-parser:
services:
a-parser:
image: aparser/runtime:latest
command: ./aparser
restart: always
volumes:
- ./aparser:/app
ports:
- 9091:9091
ulimits:
nofile:
soft: 10240
hard: 10240
Também é recomendado realizar o ajuste do Linux para um maior número de threads no sistema host.