From a052a7e11228421f664c253d341d65d8d7dc3d57 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=97=D0=B0=D0=B6=D0=B8=D0=B3=D0=B8=D0=BD=20=D0=91=D0=BE?= =?UTF-8?q?=D0=B3=D0=B4=D0=B0=D0=BD=20=D0=90=D0=BB=D0=B5=D0=BA=D1=81=D0=B5?= =?UTF-8?q?=D0=B5=D0=B2=D0=B8=D1=87?= Date: Mon, 5 Dec 2022 21:09:26 +0300 Subject: [PATCH] =?UTF-8?q?=D0=A3=D0=B4=D0=BE=D0=B1=D0=BD=D0=B5=D0=B5=20?= =?UTF-8?q?=D1=83=D0=BA=D0=B0=D0=B7=D1=8B=D0=B2=D0=B0=D1=82=D1=8C=20=D0=BF?= =?UTF-8?q?=D0=B5=D1=80=D0=B5=D0=BC=D0=B5=D0=BD=D0=BD=D1=8B=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .env | 5 +++++ docs/start.md | 4 ++-- src/dockerfile | 6 ++++-- start.sh | 8 +++++++- 4 files changed, 18 insertions(+), 5 deletions(-) create mode 100644 .env diff --git a/.env b/.env new file mode 100644 index 0000000..5f81d59 --- /dev/null +++ b/.env @@ -0,0 +1,5 @@ +# Токен Telegram Bot API получаемый от BotFather (https://t.me/BotFather) +BOT_TOKEN="5715517585:AAFgAdmzsDokDcCEfy6hO_cI7nrsVeMTx8M" + +# Путь к базе данных SQLite на хосте +DB_PATH="/home/zaboal/work/organizations/zazhigin-s_it-studio/databases/local_organizational-structure.db" \ No newline at end of file diff --git a/docs/start.md b/docs/start.md index 8e30ea0..22791be 100644 --- a/docs/start.md +++ b/docs/start.md @@ -1,8 +1,8 @@ ## Запуск бота -Для запуска требуются 2 переменных окружения: `BOT_TOKEN`, токен бота Telegram получаемый от [BotFather](https://t.me/BotFather), и `DB_PATH`, путь к базе данных на хосте. `BOT_TOKEN` указывается в [`src/dockerfile`](../src/dockerfile) на 13-й строке после «`ENV BOT_TOKEN=`», а `DB_PATH` в [`start.sh`](../start.sh) на 3-й после «…`-v`» и до «`:`…». +Для запуска требуются 2 переменных окружения: `BOT_TOKEN`, токен бота Telegram получаемый от [BotFather](https://t.me/BotFather), и `DB_PATH`, путь к базе данных SQLite на хосте. Указывать их нужно в файле [.env](../.env) сковывая в двойные кавычки. С помощью команды `source` в [`start.sh`](../start.sh) на основе этих переменных будет примонтирован файл базы данных и передан токен. -Затем нужно запустить файл [`start.sh`](../start.sh) от имени администратора: +Если все переменные указаны верно, можно запускать файл [`start.sh`](../start.sh) от имени администратора: ```bash sudo bash start.sh ``` \ No newline at end of file diff --git a/src/dockerfile b/src/dockerfile index e6d51e3..b5045af 100644 --- a/src/dockerfile +++ b/src/dockerfile @@ -2,16 +2,18 @@ FROM node:lts-buster-slim WORKDIR /usr/src/app -COPY package.json . +COPY package.json . RUN npm install + COPY bot.ts . # Требуемые переменные окружения # Токен бота Telegram от бота @BotFather -ENV BOT_TOKEN="5715517585:AAFgAdmzsDokDcCEfy6hO_cI7nrsVeMTx8M" +ARG BOT_TOKEN # Путь к базе данных внутри контейнера, монтируется из файловой системы хоста ENV DB_PATH="./dbase.db" + CMD npm run start \ No newline at end of file diff --git a/start.sh b/start.sh index c1708d9..cc2d4a4 100644 --- a/start.sh +++ b/start.sh @@ -1,3 +1,9 @@ +source .env; +echo -e "Полученные переменные окружения:\n\t\033[1mтокен Telegram Bot API\033[0m — \033[4m$BOT_TOKEN\033[0m,\n\t\033[1mпуть к базе данных SQLite на хосте\033[0m — \033[4m$HOST_SQLITE_DB_PATH\033[0m.\n\n"; + # Сборка и запуск контейнера Docker docker build src -t bot-telegram_zaboal-employment; -docker run -v /home/zaboal/work/organizations/zazhigin-s_it-studio/databases/local_organizational-structure.db:/usr/src/app/dbase.db bot-telegram_zaboal-employment; \ No newline at end of file +docker run \ + --env BOT_TOKEN=$BOT_TOKEN \ + --volume $DB_PATH:/usr/src/app/dbase.db \ + bot-telegram_zaboal-employment; \ No newline at end of file