parser

Написать ответ на текущее сообщение

 

 
   команды управления поиском

А вот вам сборка в виде DockerImages c parser3-3.5.2b-amqp-httpd и parser3-3.5.2b-amqp-cron-sshd

sergei v.2 08.09 20:14 / 08.09 21:00

Пример запуска парсера в докере в качестве веб-сервера на порту 9000

cat run-parser3-httpd.sh
#!/bin/bash


run_container(){
local USER_NAME=$1

local GR_ID=$(id -g $USER_NAME)
local U_ID=$(id -u $USER_NAME)

if [ -z ${4+x} ]; then port=" "; else port=" -p ${4}:9000 "; fi

docker stop api-parser3-${2}
docker rm api-parser3-${2}
docker run --net my-net --name api-parser3-${2} ${port} \
    -e TZ=Europe/Moscow \
    -e USERID=$U_ID \
    -e GROUPID=$GR_ID \
    --expose 9000 \
    --restart always \
    -v ${3}:/p3-app \
    -v ${3}/../_logs/${2}/parser3.log:/usr/local/parser3/parser3.log \
    -v /home/dialog/etc/nginx/vhosts/dialog/:/etc/nginx-dialog/ \
    -v /var/run/docker.sock:/var/run/docker.sock \
    -d sprikhodko/parser3-3.5.2b-amqp-httpd:fedora44
}



docker pull sprikhodko/parser3-3.5.2b-amqp-httpd:fedora44

run_container "user_vasya" "project_name1" "/home/user_vasya/sites/project_name1-api"
run_container "user_vasya" "project_name2" "/home/user_vasya/sites/project_name2-api"
run_container "user_petya" "project_name1" "/home/user_petya/sites/project_name1-api"
Пример запуска парсера в докере для выполнения консольных команд с запуском через cron + ssh доступ в контейнер для ci/cd проекта через ssh-порт:

cat run-parser3-cron-ssh.sh
#!/bin/bash


run_container(){
local USER_NAME=$1

local GR_ID=$(id -g $USER_NAME)
local U_ID=$(id -u $USER_NAME)

echo $USER_NAME
echo $U_ID
echo $GR_ID

if [ -z ${4+x} ]; then port=" "; else port=" -p ${4}:22 "; fi

docker stop cron-parser3-${2}
docker rm cron-parser3-${2}
docker run --net my-net --name cron-parser3-${2} ${port} \
    -e TZ=Europe/Moscow \
    -e USERID=$U_ID \
    -e GROUPID=$GR_ID \
    --restart always \
    -v ~/docker/.ssh/${1}/:/home/web/.ssh/ \
    -v /home/${1}/sites/:/home/web/sites/ \
    -v ${3}:/p3-app \
    -v ${3}/../_logs/${2}/parser3-cron.log:/usr/local/parser3/parser3.log \
    -v ${3}/../_logs/${2}/parser3.log:/usr/local/parser3/parser3-api.log \
    -d sprikhodko/parser3-3.5.2b-amqp-cron-sshd:fedora44
}

docker pull sprikhodko/parser3-3.5.2b-amqp-cron-sshd:fedora44

run_container "user_vasya" "project_name1" "/home/user_vasya/sites/project_name1-api" "60022"
run_container "user_petya" "project_name1" "/home/user_petya/sites/project_name1-api" "60122"
Если хочется только cron без ssh, то можно использовать образ sprikhodko/parser3-3.5.2b-amqp-cron:fedora44

Внутри контейнеров корень сайта /p3-app/app/www/
Тут пишем команды для крона: /p3-app/app/cron/crontab.txt (последняя строчка должна заканчиваться энтером)

:latest использовать на надо. Там лежит мягко говоря не последняя версия. Надо на старых проектах код привести к самой свежей версии парсера и обновить latest.

Почему fedora, а не alpine? Потому что надо в образ было добавлять некоторые утилиты, а в alpine бывают проблемы с этим. Но можно наверное и заморочиться.