From 1f15630680c69fa771dd7dc6cfea0c1db9ccc8eb Mon Sep 17 00:00:00 2001 From: Mootfrost777 Date: Wed, 24 Aug 2022 18:20:08 +0300 Subject: [PATCH] =?UTF-8?q?=D0=9F=D0=BE=D0=B4=D0=B4=D0=B5=D1=80=D0=B6?= =?UTF-8?q?=D0=BA=D0=B0=20Docker=20+=20drone=20CI/CD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .drone.yml | 64 ++++++++++++++++++++++++++++++++++++++++++++++ Dockerfile | 9 +++++++ docker-compose.yml | 34 ++++++++++++++++++++++++ main.py | 4 ++- 4 files changed, 110 insertions(+), 1 deletion(-) create mode 100644 .drone.yml create mode 100644 Dockerfile create mode 100644 docker-compose.yml diff --git a/.drone.yml b/.drone.yml new file mode 100644 index 0000000..2fdc5f7 --- /dev/null +++ b/.drone.yml @@ -0,0 +1,64 @@ +kind: pipeline +name: default +type: docker + +steps: + - name: build + image: docker/compose:latest + volumes: + - name: docker_sock + path: /var/run/docker.sock + commands: + - docker-compose build + - name: push + image: docker/compose:latest + volumes: + - name: docker_sock + path: /var/run/docker.sock + environment: + REGISTRY_USERNAME: + from_secret: REGISTRY_USERNAME + REGISTRY_PASSWORD: + from_secret: REGISTRY_PASSWORD + + commands: + - docker login https://registry.mootfrost.ru -u $REGISTRY_USERNAME -p $REGISTRY_PASSWORD + - docker-compose push + - name: deploy + image: docker/compose:latest + volumes: + - name: docker_sock + path: /var/run/docker.sock + environment: + API_ID: + from_secret: API_ID + API_HASH: + from_secret: API_HASH + BOT_TOKEN: + from_secret: BOT_TOKEN + POSTGRES_HOST: + from_secret: POSTGRES_HOST + POSTGRES_USER: + from_secret: POSTGRES_USER + POSTGRES_PASSWORD: + from_secret: POSTGRES_PASSWORD + commands: + - export API_ID=${API_ID} + - export API_HASH=${API_HASH} + - export BOT_TOKEN=${BOT_TOKEN} + - export POSTGRES_HOST=${POSTGRES_HOST} + - export POSTGRES_USER=${POSTGRES_USER} + - export POSTGRES_PASSWORD=${POSTGRES_PASSWORD} + - docker-compose -p mootfrost-dev up -d + - name: prune + image: docker/compose:latest + volumes: + - name: docker_sock + path: /var/run/docker.sock + commands: + - docker image prune -f + +volumes: + - name: docker_sock + host: + path: /var/run/docker.sock diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..d241290 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,9 @@ +FROM python:3.8-slim-buster + +WORKDIR . + +COPY requirements.txt . +RUN pip install -r --no-cache-dir requirements.txt + +COPY . . +CMD python main.py \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..f2c6668 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,34 @@ +version: '3.8' + +services: + bot: + image: registry.mootfrost.ru/novagon/bot:latest + container_name: bot + restart: always + environment: + - API_ID=${API_ID} + - API_HASH=${API_HASH} + - BOT_TOKEN=${BOT_TOKEN} + - SESSION_NAME=NoVagonBot + - GOOGLE_PROJECT_ID=novagon-rg9f + - GOOGLE_APPLICATION_CREDENTIALS=df_key.json + - GOOGLE_MODEL_LANGUAGE=ru + - POSTGRES_HOST=${POSTGRES_HOST} + - POSTGRES_DATABASE=postgres + - POSTGRES_USER=${POSTGRES_USER} + - POSTGRES_PASSWORD=${POSTGRES_USER} + - POSTGRES_PORT=5432 + build: . + volumes: + - /etc/telegram-api + database: + image: postgres:alpine + container_name: database + restart: always + environment: + - POSTGRES_USER=${POSTGRES_USER} + - POSTGRES_PASSWORD=${POSTGRES_USER} + volumes: + - ./data:/var/lib/postgresql/novagon/data + ports: + - "5432:5432" \ No newline at end of file diff --git a/main.py b/main.py index 2b3669d..e2ec543 100644 --- a/main.py +++ b/main.py @@ -189,7 +189,9 @@ async def process_message(msg): 'Вагончиками балуемся?', 'Вагоны тут не приветствуются', 'Надоел уже со своими вагонами'])) - await msg.respond('Бот работает в режиме обучения, напишите /report в ответ на сообщение, если оно не было распознано или распознано по ошибке') + if random.randint(0, 6) == 1: + await msg.respond( + 'Бот работает в режиме обучения, напишите /report в ответ на сообщение, если оно не было распознано или распознано по ошибке') await bot.edit_permissions(msg.chat_id, msg.sender_id, timedelta(minutes=10), send_messages=False) raise events.StopPropagation