Docker ve docker-compose
A-Parser'ın Linux ve MacOS üzerine docker aracılığıyla kurulması önerilen yöntemdir; A-Parser ve Headless Chrome'un çalışması için gerekli tüm bağımlılıkları ve kitaplıkları içeren bir imaj hazırladık.
Kurulumdan önce
- Kurulumdan önce Üye Paneli'nde IP adresinizi tanımlamanız gerekir.
- Sisteminize Docker kurmanız gerekmektedir.
Dağıtımı indirme
A-Parser dağıtımını indirin ve paketinden çıkarın:
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
İndirme işlemi Linux için tek kullanımlık bir bağlantı üzerinden gerçekleşir. Bu bağlantıyı Üye Paneli içerisindeki A-Parser -> İndirmeler sekmesinden almanız gerekir.
Docker ile çalıştırma
Ön planda (foreground) çalıştırma
Logları terminalde görmek için A-Parser'ı ön planda çalıştırın:
docker run --rm --name aparser -v $(pwd)/aparser:/app -p 9091:9091 -t aparser/runtime ./aparser -foreground
Aşağıdaki -foreground seçeneği, günlük dosyası içeriğini doğrudan terminale yazdırır:
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
Başlatıldıktan sonra A-Parser şu adresten erişilebilir olacaktır: http://127.0.0.1:9091
Arka planda çalıştırma
Konteyneri arka planda çalıştırmak için şu komutu kullanın:
docker run --rm --name aparser -v $(pwd)/aparser:/app -p 9091:9091 -t -d aparser/runtime ./aparser
Docker üzerinden çalıştırırken iş parçacığı ayarı
Varsayılan olarak, konteyner içinde açık dosya/soket sayısı sınırı vardır. Docker üzerinden çalıştırırken limiti 10240'a çıkarmak için --ulimit seçeneğini kullanın:
docker run --rm --name aparser -v $(pwd)/aparser:/app -p 9091:9091 --ulimit nofile=10240:10240 -t -d aparser/runtime ./aparser
Ek olarak, ana makinede daha fazla iş parçacığı için Linux optimizasyonu yapılması önerilir.
Docker konteynerinde A-Parser güncelleme
Konteyneri durdurun:
docker stop aparser
A-Parser'ı güncelleyin:
docker run --rm --name aparser -v $(pwd)/aparser:/app -p 9091:9091 -t aparser/runtime ./aparser -foreground -doupdate
Güncelleme tamamlandığında A-Parser'ı başlatın
Ayrıca arayüz üzerinden veya tek kullanımlık bağlantı ile güncellemeyi kullanabilirsiniz
Headful modunda çalıştırma
Tarayıcının headful modunda (sanal ekran ile) çalıştırılmasını gerektiren sitelerden veri çekme işlemi için aparser/runtime:headful imajını kullanın.
Normal imajdan headful imajına geçmek için:
Konteyneri durdurun:
docker stop aparser
Headful imajını indirin:
docker pull aparser/runtime:headful
A-Parser'ı yeni imajla başlatın:
docker run --rm --name aparser -v $(pwd)/aparser:/app -p 9091:9091 -t -d aparser/runtime:headful ./aparser
docker-compose için docker-compose.yml dosyasındaki imajı değiştirin:
image: aparser/runtime:headful
Ardından şunu çalıştırın:
docker compose up -d
Başlattıktan sonra veri kazıyıcı ayarlarında Chrome headless: 0 seçeneğini etkinleştirin. Chrome başlatıldığında günlükte (log) Headful görünmelidir.
Görsel kontrol için novnc sunucusu 5900 portunda mevcuttur, şifre VNC_PASSWORD değişkeni üzerinden ayarlanır (varsayılan: docker).
docker-compose üzerinden çalıştırma
docker-compose.yml örneği
Bu docker-compose.yml dosyasını oluşturun:
version: '3'
services:
a-parser:
image: aparser/runtime:latest
command: ./aparser
restart: always
volumes:
- ./aparser:/app
ports:
- 9091:9091
docker-compose üzerinden başlatma
A-Parser'ı başlatın:
docker compose up -d
docker-compose'da iş parçacığı optimizasyonu
docker-compose üzerinden çalıştırıldığında, konteyner içinde açık dosya/soket sayısı sınırı geçerlidir. Limiti 10240'a çıkarmak için a-parser servisine ulimits bloğunu ekleyin:
services:
a-parser:
image: aparser/runtime:latest
command: ./aparser
restart: always
volumes:
- ./aparser:/app
ports:
- 9091:9091
ulimits:
nofile:
soft: 10240
hard: 10240
Ayrıca ana makinede (host) daha fazla iş parçacığı için Linux optimizasyonu yapılması önerilir.