From 6c8b27963bade1a11e6df568498bc13516bc891b Mon Sep 17 00:00:00 2001 From: Dmitry Afanasyev Date: Wed, 24 Aug 2022 00:05:34 +0300 Subject: [PATCH] reworked to docker and selenoid --- app/core/bot.py | 10 ++++------ deploy/Dockerfile.bot | 2 ++ docker-compose.yml | 5 +---- scripts/mosgortrans.service | 4 ++-- scripts/start-bot.sh | 14 ++++++-------- 5 files changed, 15 insertions(+), 20 deletions(-) diff --git a/app/core/bot.py b/app/core/bot.py index 024ce40..75b8ae4 100644 --- a/app/core/bot.py +++ b/app/core/bot.py @@ -4,7 +4,7 @@ from aiogram import Bot, types from aiogram.contrib.middlewares.logging import LoggingMiddleware from aiogram.dispatcher import Dispatcher 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 bot = Bot(token=API_TOKEN) @@ -12,9 +12,6 @@ dispatcher = Dispatcher(bot) dispatcher.middleware.setup(LoggingMiddleware()) -driver = get_driver() -session_id = get_driver_session(driver) - stations_cb = CallbackData('station', 'direction') @@ -39,6 +36,7 @@ def get_keyboard() -> types.InlineKeyboardMarkup: async def home_office( query: types.CallbackQuery, callback_data: dict[str, str] ) -> types.Message: + driver = get_driver() text = parse_site( driver=driver, @@ -56,7 +54,7 @@ async def home_office( async def office_home( query: types.CallbackQuery, callback_data: dict[str, str] ) -> types.Message: - + driver = get_driver() text = parse_site( driver=driver, 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: - + driver = get_driver() text = parse_site( driver=driver, url='https://yandex.ru/maps/213/moscow/stops/stop__9640740/' diff --git a/deploy/Dockerfile.bot b/deploy/Dockerfile.bot index c6a44d6..083c982 100644 --- a/deploy/Dockerfile.bot +++ b/deploy/Dockerfile.bot @@ -56,6 +56,8 @@ RUN poetry version \ && if [ "$USER" != 'root' ]; then rm -rf "$POETRY_CACHE_DIR"; fi COPY --chown="$USER":"$USER" ./app /app/ +COPY ./scripts/start-bot.sh . +RUN chmod +x ./start-bot.sh USER "$USER" diff --git a/docker-compose.yml b/docker-compose.yml index a53dc18..27d9c2c 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -24,8 +24,6 @@ services: volumes: - ./deploy/browsers.json:/etc/selenoid/browsers.json:ro - /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"] expose: - "4444" @@ -44,5 +42,4 @@ services: ipv4_address: 200.20.0.11 ports: - "8084:8084" - command: > - bash -c "python main.py" \ No newline at end of file + command: bash start-bot.sh \ No newline at end of file diff --git a/scripts/mosgortrans.service b/scripts/mosgortrans.service index 8fee2cf..1a86601 100644 --- a/scripts/mosgortrans.service +++ b/scripts/mosgortrans.service @@ -5,7 +5,7 @@ After=network-online.target [Service] Restart=always WorkingDirectory=/opt/mosgortrans -ExecStart=/bin/bash /opt/mosgortrans/scripts/start-bot.sh -ExecStop=/bin/bash /opt/mosgortrans/scripts/stop-bot.sh +ExecStart=/usr/local/bin/docker-compose -f /opt/mosgortrans/docker-compose.yml up +ExecStop=/usr/local/bin/docker-compose -f /opt/mosgortrans/docker-compose.yml down -v [Install] WantedBy=multi-user.target \ No newline at end of file diff --git a/scripts/start-bot.sh b/scripts/start-bot.sh index 9e278a4..05dc84e 100644 --- a/scripts/start-bot.sh +++ b/scripts/start-bot.sh @@ -1,17 +1,15 @@ #! /bin/bash - echo "starting the bot" -cd /opt/mosgortrans \ -&& source /home/balsh/.cache/pypoetry/virtualenvs/mosgortrans-3eZxMcY3-py3.10/bin/activate \ -&& gunicorn app.main:create_app \ - --bind prod-server.lan:8084 \ + +gunicorn main:create_app \ + --bind 127.0.0.1:8084 \ --worker-class aiohttp.GunicornWebWorker \ --timeout 150 \ --max-requests 2000 \ --max-requests-jitter 400 \ - --chdir "/opt/mosgortrans/logs" \ + --chdir "/app/logs" \ --log-level info \ - --error-logfile "/opt/mosgortrans/logs/gunicorn_err.log" \ + --error-logfile "/app/logs/gunicorn_err.log" \ --worker-tmp-dir "/tmp" \ - --pid "/opt/mosgortrans/logs/gunicorn_pid" \ No newline at end of file + --pid "/app/logs/gunicorn_pid" \ No newline at end of file