reworked to docker and selenoid

This commit is contained in:
Dmitry Afanasyev 2022-08-24 00:05:34 +03:00
parent 98b5bfe2a6
commit 6c8b27963b
5 changed files with 15 additions and 20 deletions

View File

@ -4,7 +4,7 @@ from aiogram import Bot, types
from aiogram.contrib.middlewares.logging import LoggingMiddleware from aiogram.contrib.middlewares.logging import LoggingMiddleware
from aiogram.dispatcher import Dispatcher from aiogram.dispatcher import Dispatcher
from aiogram.utils.callback_data import CallbackData from aiogram.utils.callback_data import CallbackData
from app.core.parse_web import get_driver, get_driver_session, parse_site from app.core.parse_web import get_driver, parse_site
from app.settings import API_TOKEN from app.settings import API_TOKEN
bot = Bot(token=API_TOKEN) bot = Bot(token=API_TOKEN)
@ -12,9 +12,6 @@ dispatcher = Dispatcher(bot)
dispatcher.middleware.setup(LoggingMiddleware()) dispatcher.middleware.setup(LoggingMiddleware())
driver = get_driver()
session_id = get_driver_session(driver)
stations_cb = CallbackData('station', 'direction') stations_cb = CallbackData('station', 'direction')
@ -39,6 +36,7 @@ def get_keyboard() -> types.InlineKeyboardMarkup:
async def home_office( async def home_office(
query: types.CallbackQuery, callback_data: dict[str, str] query: types.CallbackQuery, callback_data: dict[str, str]
) -> types.Message: ) -> types.Message:
driver = get_driver()
text = parse_site( text = parse_site(
driver=driver, driver=driver,
@ -56,7 +54,7 @@ async def home_office(
async def office_home( async def office_home(
query: types.CallbackQuery, callback_data: dict[str, str] query: types.CallbackQuery, callback_data: dict[str, str]
) -> types.Message: ) -> types.Message:
driver = get_driver()
text = parse_site( text = parse_site(
driver=driver, driver=driver,
url='https://yandex.ru/maps/213/moscow/stops/stop__9640288/?' url='https://yandex.ru/maps/213/moscow/stops/stop__9640288/?'
@ -82,7 +80,7 @@ async def echo(message: types.Message) -> types.Message:
async def morning_bus_mailing(chat_ids: list[int]) -> None: async def morning_bus_mailing(chat_ids: list[int]) -> None:
driver = get_driver()
text = parse_site( text = parse_site(
driver=driver, driver=driver,
url='https://yandex.ru/maps/213/moscow/stops/stop__9640740/' url='https://yandex.ru/maps/213/moscow/stops/stop__9640740/'

View File

@ -56,6 +56,8 @@ RUN poetry version \
&& if [ "$USER" != 'root' ]; then rm -rf "$POETRY_CACHE_DIR"; fi && if [ "$USER" != 'root' ]; then rm -rf "$POETRY_CACHE_DIR"; fi
COPY --chown="$USER":"$USER" ./app /app/ COPY --chown="$USER":"$USER" ./app /app/
COPY ./scripts/start-bot.sh .
RUN chmod +x ./start-bot.sh
USER "$USER" USER "$USER"

View File

@ -24,8 +24,6 @@ services:
volumes: volumes:
- ./deploy/browsers.json:/etc/selenoid/browsers.json:ro - ./deploy/browsers.json:/etc/selenoid/browsers.json:ro
- /var/run/docker.sock:/var/run/docker.sock - /var/run/docker.sock:/var/run/docker.sock
environment:
- SESSION_TIMED_OUT=12h
command: ["-conf", "/etc/selenoid/browsers.json", "-limit", "10", "-container-network", "transport_bot_network"] command: ["-conf", "/etc/selenoid/browsers.json", "-limit", "10", "-container-network", "transport_bot_network"]
expose: expose:
- "4444" - "4444"
@ -44,5 +42,4 @@ services:
ipv4_address: 200.20.0.11 ipv4_address: 200.20.0.11
ports: ports:
- "8084:8084" - "8084:8084"
command: > command: bash start-bot.sh
bash -c "python main.py"

View File

@ -5,7 +5,7 @@ After=network-online.target
[Service] [Service]
Restart=always Restart=always
WorkingDirectory=/opt/mosgortrans WorkingDirectory=/opt/mosgortrans
ExecStart=/bin/bash /opt/mosgortrans/scripts/start-bot.sh ExecStart=/usr/local/bin/docker-compose -f /opt/mosgortrans/docker-compose.yml up
ExecStop=/bin/bash /opt/mosgortrans/scripts/stop-bot.sh ExecStop=/usr/local/bin/docker-compose -f /opt/mosgortrans/docker-compose.yml down -v
[Install] [Install]
WantedBy=multi-user.target WantedBy=multi-user.target

View File

@ -1,17 +1,15 @@
#! /bin/bash #! /bin/bash
echo "starting the bot" echo "starting the bot"
cd /opt/mosgortrans \
&& source /home/balsh/.cache/pypoetry/virtualenvs/mosgortrans-3eZxMcY3-py3.10/bin/activate \ gunicorn main:create_app \
&& gunicorn app.main:create_app \ --bind 127.0.0.1:8084 \
--bind prod-server.lan:8084 \
--worker-class aiohttp.GunicornWebWorker \ --worker-class aiohttp.GunicornWebWorker \
--timeout 150 \ --timeout 150 \
--max-requests 2000 \ --max-requests 2000 \
--max-requests-jitter 400 \ --max-requests-jitter 400 \
--chdir "/opt/mosgortrans/logs" \ --chdir "/app/logs" \
--log-level info \ --log-level info \
--error-logfile "/opt/mosgortrans/logs/gunicorn_err.log" \ --error-logfile "/app/logs/gunicorn_err.log" \
--worker-tmp-dir "/tmp" \ --worker-tmp-dir "/tmp" \
--pid "/opt/mosgortrans/logs/gunicorn_pid" --pid "/app/logs/gunicorn_pid"