From cfce98a42fb15967aaa8e1e7dbdf8ad5a3c15554 Mon Sep 17 00:00:00 2001 From: Bulat Kurbanov Date: Mon, 21 Apr 2025 15:40:56 +0200 Subject: [PATCH] Update --- .github/workflows/build_docker_image.yml | 40 ++++++++++++------------ docker/build.dockerfile | 31 +++++++++--------- scripts/start_app.sh | 4 ++- scripts/start_scheduler.sh | 3 -- scripts/start_web_app.sh | 3 -- scripts/start_worker.sh | 3 -- src/applications/games_list/__init__.py | 7 ----- src/applications/games_list/__main__.py | 13 ++++++++ src/applications/games_list/discord.py | 11 ++----- 9 files changed, 55 insertions(+), 60 deletions(-) delete mode 100644 scripts/start_scheduler.sh delete mode 100644 scripts/start_web_app.sh delete mode 100644 scripts/start_worker.sh delete mode 100644 src/applications/games_list/__init__.py create mode 100644 src/applications/games_list/__main__.py diff --git a/.github/workflows/build_docker_image.yml b/.github/workflows/build_docker_image.yml index a8ffdfd..852b361 100644 --- a/.github/workflows/build_docker_image.yml +++ b/.github/workflows/build_docker_image.yml @@ -49,26 +49,26 @@ jobs: with: url: ${{ secrets.WEBHOOK_URL }} - - - name: Invoke deployment hook (worker) - uses: joelwmale/webhook-action@master - with: - url: ${{ secrets.WEBHOOK_URL_2 }} + # - + # name: Invoke deployment hook (worker) + # uses: joelwmale/webhook-action@master + # with: + # url: ${{ secrets.WEBHOOK_URL_2 }} - - - name: Invoke deployment hook (scheduler) - uses: joelwmale/webhook-action@master - with: - url: ${{ secrets.WEBHOOK_URL_3 }} + # - + # name: Invoke deployment hook (scheduler) + # uses: joelwmale/webhook-action@master + # with: + # url: ${{ secrets.WEBHOOK_URL_3 }} - - - name: Invoke deployment hook (stream_notifications) - uses: joelwmale/webhook-action@master - with: - url: ${{ secrets.WEBHOOK_URL_4 }} + # - + # name: Invoke deployment hook (stream_notifications) + # uses: joelwmale/webhook-action@master + # with: + # url: ${{ secrets.WEBHOOK_URL_4 }} - - - name: Invoke deployment hook (web_app) - uses: joelwmale/webhook-action@master - with: - url: ${{ secrets.WEBHOOK_URL_5 }} + # - + # name: Invoke deployment hook (web_app) + # uses: joelwmale/webhook-action@master + # with: + # url: ${{ secrets.WEBHOOK_URL_5 }} diff --git a/docker/build.dockerfile b/docker/build.dockerfile index 498fdbd..d81362a 100644 --- a/docker/build.dockerfile +++ b/docker/build.dockerfile @@ -1,19 +1,22 @@ -FROM ghcr.io/astral-sh/uv:python3.12-bookworm-slim +FROM ghcr.io/astral-sh/uv:python3.13-bookworm-slim AS builder -COPY ./scripts/*.sh / +WORKDIR /opt/ +COPY ./pyproject.toml ./uv.lock ./ + +RUN --mount=type=ssh uv venv \ + && uv sync --frozen + + +FROM ghcr.io/astral-sh/uv:python3.13-bookworm-slim + +ENV PATH="/opt/venv/bin:$PATH" + +COPY ./src /app +COPY --from=builder /opt/.venv /opt/venv + +COPY ./docker/*.sh / RUN chmod +x /*.sh WORKDIR /app -COPY ./pyproject.toml ./ -COPY ./uv.lock ./ - -RUN uv venv && uv sync --frozen - -COPY ./src ./src - -ENV PATH="/app/.venv/bin:$PATH" - -EXPOSE 80 - -CMD ["uv", "run", "src/main.py"] +ENTRYPOINT ["uv", "run"] diff --git a/scripts/start_app.sh b/scripts/start_app.sh index c8d288c..2d90088 100644 --- a/scripts/start_app.sh +++ b/scripts/start_app.sh @@ -1,3 +1,5 @@ #! /usr/bin/env sh -uv run ./src/main.py $1 +cd src + +uv run $1 diff --git a/scripts/start_scheduler.sh b/scripts/start_scheduler.sh deleted file mode 100644 index 8857086..0000000 --- a/scripts/start_scheduler.sh +++ /dev/null @@ -1,3 +0,0 @@ -#! /usr/bin/env sh - -uv run --directory src taskiq scheduler core.broker:scheduler modules.tasks diff --git a/scripts/start_web_app.sh b/scripts/start_web_app.sh deleted file mode 100644 index 3e548a4..0000000 --- a/scripts/start_web_app.sh +++ /dev/null @@ -1,3 +0,0 @@ -#! /usr/bin/env sh - -uv run --directory src uvicorn modules.web_app.app:app --host 0.0.0.0 --port 80 diff --git a/scripts/start_worker.sh b/scripts/start_worker.sh deleted file mode 100644 index ca174c8..0000000 --- a/scripts/start_worker.sh +++ /dev/null @@ -1,3 +0,0 @@ -#! /usr/bin/env sh - -uv run --directory src taskiq worker core.broker:broker modules.tasks diff --git a/src/applications/games_list/__init__.py b/src/applications/games_list/__init__.py deleted file mode 100644 index 0789d5a..0000000 --- a/src/applications/games_list/__init__.py +++ /dev/null @@ -1,7 +0,0 @@ -from .discord import start_discord_sevice - - -start = start_discord_sevice - - -__all__ = ["start"] diff --git a/src/applications/games_list/__main__.py b/src/applications/games_list/__main__.py new file mode 100644 index 0000000..a314ab8 --- /dev/null +++ b/src/applications/games_list/__main__.py @@ -0,0 +1,13 @@ +from asyncio import run + +from applications.games_list.discord import client, logger +from core.config import config + + +async def start_discord_sevice(): + logger.info("Starting Discord service...") + + await client.start(config.DISCORD_BOT_TOKEN) + + +run(start_discord_sevice()) diff --git a/src/applications/games_list/discord.py b/src/applications/games_list/discord.py index 3f547ec..beb1257 100644 --- a/src/applications/games_list/discord.py +++ b/src/applications/games_list/discord.py @@ -5,10 +5,9 @@ from discord.abc import Messageable from discord import Object from discord import app_commands -from modules.games_list.games_list import GameList, GameItem - +from applications.common.repositories.streamers import StreamerConfigRepository +from applications.games_list.games_list import GameList, GameItem from core.config import config -from repositories.streamers import StreamerConfigRepository logger = logging.getLogger(__name__) @@ -240,9 +239,3 @@ async def replace(interaction: discord.Interaction, game: str, new: str): await game_list.save() await interaction.response.send_message("Игра заменена!", ephemeral=True) - - -async def start_discord_sevice(): - logger.info("Starting Discord service...") - - await client.start(config.DISCORD_BOT_TOKEN)