feat: add karkas_lite

This commit is contained in:
2024-10-03 19:59:23 +03:00
parent 0881fe02d5
commit 9ac88652e0
20 changed files with 2650 additions and 18 deletions

View File

@@ -0,0 +1,38 @@
FROM python:3.12-slim AS dependencies_installer
RUN pip install poetry
WORKDIR /app
COPY ./src/karkas_core/poetry* ./src/karkas_core/pyproject.toml /app/src/karkas_core/
COPY ./src/karkas_blocks/poetry* ./src/karkas_blocks/pyproject.toml /app/src/karkas_blocks/
COPY ./src/karkas_piccolo/poetry* ./src/karkas_piccolo/pyproject.toml /app/src/karkas_piccolo/
COPY ./src/karkas_lite/poetry* ./src/karkas_lite/pyproject.toml /app/src/karkas_lite/
WORKDIR /app/src/karkas_lite
RUN poetry install --no-root --no-directory
FROM python:3.12-slim AS src
COPY ./src/karkas_core /app/src/karkas_core
COPY ./src/karkas_blocks /app/src/karkas_blocks
COPY ./src/karkas_piccolo /app/src/karkas_piccolo
COPY ./src/karkas_lite /app/src/karkas_lite
FROM python:3.12-slim AS local_dependencies_installer
RUN pip install poetry
COPY --from=dependencies_installer /app/src/karkas_lite/.venv /app/src/karkas_lite/.venv
COPY --from=src /app/src/ /app/src/
WORKDIR /app/src/karkas_lite
RUN poetry install
FROM python:3.12-slim AS base
COPY --from=local_dependencies_installer /app/src/karkas_lite/.venv /app/src/karkas_lite/.venv
COPY --from=src /app/src/ /app/src/
WORKDIR /app/src/karkas_lite
ENV PATH="/app/.venv/bin:$PATH"
CMD ["/bin/bash", "-c", ". .venv/bin/activate && python -m karkas_lite"]

View File

@@ -0,0 +1,14 @@
**/Dockerfile
**/*.dockerignore
**/docker-compose.yml
**/.git
**/.gitignore
**/.venv
**/.mypy_cache
**/__pycache__/
src/karkas_lite/config.yaml
src/karkas_lite/database/*

View File

View File

@@ -0,0 +1,3 @@
core:
mode: LONG_POLLING
token: xxx

View File

View File

@@ -0,0 +1,10 @@
services:
app:
build:
context: ../..
dockerfile: src/karkas_lite/Dockerfile
ports:
- 9000:9000
volumes:
- ./config.yaml:/app/src/karkas_lite/config.yaml
- ./database:/app/database

View File

View File

@@ -0,0 +1,24 @@
import asyncio
from karkas_blocks import block_loader
from karkas_core import Karkas
async def main():
ocab = Karkas()
await ocab.init_app(
[
block_loader("standard", "config", safe=False),
block_loader("standard", "filters", safe=False),
block_loader("standard", "database", safe=False),
block_loader("standard", "command_helper"),
block_loader("standard", "spam", safe=False),
block_loader("standard", "report"),
block_loader("standard", "welcome", safe=False),
block_loader("standard", "help"),
]
)
await ocab.start()
asyncio.run(main())

2465
src/karkas_lite/poetry.lock generated Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,2 @@
[virtualenvs]
in-project = true

View File

@@ -0,0 +1,18 @@
[tool.poetry]
name = "karkas-lite"
version = "0.1.0"
description = ""
authors = [
"Maxim Slipenko <maxim@slipenko.com>"
]
readme = "README.md"
[tool.poetry.dependencies]
python = ">=3.10,<3.13"
karkas-core = { extras=["webhook"], path = "../karkas_core", develop = true }
karkas-blocks = { path = "../karkas_blocks", develop = true }
karkas-piccolo = { path = "../karkas_piccolo", develop = true }
[build-system]
requires = ["poetry-core"]
build-backend = "poetry.core.masonry.api"