Проект устанавливается БЕЗ root'a
-
Установите docker: https://www.docker.com
-
Установите docker compose если вы на linux: https://docs.docker.com/compose/install/
-
Создайте Github Access Token тут: https://github.com/settings/tokens/new?scopes=read:packages,repo&description=parserbox-web
Увеличьте или уберите время жизни токена.
Сгенерированный токен понадобится на следующих шагах. Запишите его.
-
Зачекаутите проект используя git: Если гитхаб запрашивает имя пользователя и пароль - используйте Github Access Token в качестве пароля
git clone https://github.com/AwardWallet/parserbox-web.git
cd parserbox-web- Скачивание парсеров (engine) =============================
Парсеры скачиваются в папку src/engine, из отдельного репозитория. Если вы здесь первый раз, то скорее всего вам подойдут парсеры для песочницы:
https://github.com/AwardWallet/engine-sandbox
Скачайте их:
git clone https://github.com/AwardWallet/engine-sandbox.git src/engineЕсли вы уже научились писать парсеры, и переходите на прод, скачивайте продакшн репозиторий:
git clone https://github.com/AwardWallet/engine.git src/engine- Авторизуйтесь на docker.awardwallet.com (http пароль от staging.awardwallet.com, приходит вам на почту зашифрованный gpg):
docker login docker.awardwallet.com
Username: VPupkin
Password:
Login Succeeded- Настройте маппинг пользователей Узнайте свой локальный user id, командой:
id -u $USERСоздайте файл .env вида
LOCAL_USER_ID=<ваш user id>- Запустите docker-compose
docker compose up -d- Установите зависимости composer
docker compose exec php bashВы должны увидеть запрос командной строки вида:
user@parserbox-web:/www/awardwallet$- Установите github access token для composer:
composer config github-oauth.github.com <ваш GitHub Access Token>- Залогиньтесь в npm
npm login --scope=@awardwallet --registry=https://npm.pkg.github.com
Username: <Ваше имя пользователя GitHub в нижнем регистре>
Password: <ваш GitHub Access Token>
Email: (this IS public) <ваш @awardwallet.com email>
Logged in as vsilantyev to scope @awardwallet on https://npm.pkg.github.com/.- Установите зависимости
composer install -n14. Для linux/mac пропишите на хостовой машине (не в контейнере) в /etc/hosts
127.0.0.1 parserbox-web.awardwallet.docker
- Откройте сайт в браузере http://parserbox-web.awardwallet.docker:38401/
Для парсинга программ с использованием селениум установите (кроме Apple Silicon): https://github.com/AwardWallet/selenium-monitor
Если у вас arm-based mac (m1, m2), то локально селениум не будет работать, как минимум хром. Используйте удаленный селениум:
Запустите проброс портов
./connect-remote-selenium.sh Скрипт сработает если нужные ssh ключи для ssh.awardwallet.com прописаны в ~/.ssh/config. Возможно вам надо будет модифицировать этот скрипт под свою конфигурацию ключей. Либо добавьте настройки в ~/.ssh/config:
Host ssh.awardwallet.com
User MyUserName
IdentityFile ~/.ssh/myAwardwalletSsh.keyГотово. Можно по vnc подключаться к портам 11594 и т.л. Список портов тут: https://github.com/AwardWallet/selenium-monitor/blob/ff3ef4974eb45993d3a2edc3d0f84e75c3b1bf8f/docker-compose.yml#L34-L34
Для подключения к селениумам 100-ой версии и выше используйте веб интерфейс: http://localhost:43765/#/
Для docker for mac ничего настраивать не надо.
Для других систем (не тестировалось, возможно уже устарело):
sudo vim /etc/php/7.2/mods-available/php_aw_debug.ini В этом файле вам надо поменять параметр xdebug.remote_host, прописать туда свой ip в локальной сети.
После этого выйти из контейнера и сделать
docker compose restart phpЭти изменения придется делать при смене ip, и при обновлении контейнеров. Для docker под windows есть специальное имя хоста: docker.for.win.localhost (не проверено, отпишите кто попробует), для linux наверно что то аналогичное.
В консоли xdebug по умолчанию отключен, чтобы включить, используйте алиас xdebug, пример:
xdebug ../vendon/bin/codecept run tests/unit/SomeTest.phpdocker compose down
docker compose down -v
docker compose down -v
docker compose pull mysql-dataЗапускайте снова.
docker compose up -dПроблема возникает по причине отсутствия исполняемого файла docker-compose. В разных linux-дистрибутивах compose плагин докера запускается по-разному: где-то docker compose, где-то docker compose . Если у вас первый вариант, то поможет следующее решение:
- Создаем файл docker compose и записываем в него следующий текст:
#!/bin/sh
docker compose $*Например, вот таким образом:
echo "
#\!/bin/sh
docker compose \$*
" > docker-compose;- Делаем этот файл исполняемым:
chmod +x docker-compose;- Переносим его в любую директорию, которая находится в $PATH, например, в /usr/local/bin/:
sudo mv docker compose /usr/local/bin/;- Пересоздаем терминал и проверяем командой
docker-composeОшибка возникает из-за неверных прав доступа к файлу .git/hooks/pre-commit. Решается исправлением прав доступа:
sudo chmod +x .git/hooks/pre-commit;