Система обновлений и установщик

This commit is contained in:
Sergey 2021-02-23 22:19:24 +03:00
parent 259840b40e
commit 03496f5d44
3 changed files with 50 additions and 6 deletions

View File

@ -3,11 +3,12 @@ version: '3'
services: services:
app: app:
image: kylmakalle/tgvkbot:latest
container_name: tgvkbot
logging: logging:
options: options:
max-size: "10M" max-size: "10M"
max-file: "10" max-file: "10"
image: kylmakalle/tgvkbot:latest
restart: always restart: always
env_file: env_file:
- env_file - env_file
@ -17,6 +18,7 @@ services:
- db - db
db: db:
image: postgres:9-alpine image: postgres:9-alpine
container_name: tgvkbot_db
volumes: volumes:
- "dbdata:/var/lib/postgresql/data" - "dbdata:/var/lib/postgresql/data"
restart: always restart: always
@ -25,4 +27,4 @@ services:
POSTGRES_PASSWORD: 'postgres' POSTGRES_PASSWORD: 'postgres'
volumes: volumes:
dbdata: dbdata:

40
install.sh Executable file
View File

@ -0,0 +1,40 @@
sudo true
if [ ! `which docker` ]; then
echo "🔨 Устанавливаем docker..."
# Alternatively you can use the official docker install script
wget -qO- https://get.docker.com/ | sh
fi
if [ ! `which docker-compose` ]; then
echo "🔨 Устанавливаем docker-compose..."
# Install docker-compose
COMPOSE_VERSION=`git ls-remote https://github.com/docker/compose | grep refs/tags | grep -oE "[0-9]+\.[0-9][0-9]+\.[0-9]+$" | sort --version-sort | tail -n 1`
sudo sh -c "curl -L https://github.com/docker/compose/releases/download/${COMPOSE_VERSION}/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose"
sudo chmod +x /usr/local/bin/docker-compose
sudo sh -c "curl -L https://raw.githubusercontent.com/docker/compose/${COMPOSE_VERSION}/contrib/completion/bash/docker-compose > /etc/bash_completion.d/docker-compose"
fi
echo "⚙️ Настраиваем переменные окружения..."
python3 set_env.py
if [ ! "$(docker ps -a | grep <name>)" ]; then
echo "🔄 Поднимаем систему обновлений..."
docker run -d \
--name watchtower \
--restart always \
-v /var/run/docker.sock:/var/run/docker.sock \
-e TZ='Europe/Moscow' \
-e WATCHTOWER_CLEANUP='true' \
-e WATCHTOWER_INCLUDE_STOPPED='true' \
-e WATCHTOWER_MONITOR_ONLY='false' \
-e WATCHTOWER_LABEL_ENABLE='true' \
containrrr/watchtower:latest
fi
echo "🚀 Запускаем бота..."
docker-compose up -d
echo "✅ Готово"

View File

@ -1,7 +1,8 @@
from config import API_VERSION, VK_APP_ID
from urllib.request import urlopen, Request
from urllib.error import HTTPError from urllib.error import HTTPError
from urllib.parse import urlencode from urllib.parse import urlencode
from urllib.request import urlopen, Request
from config import API_VERSION, VK_APP_ID
ENV_FILE_TEMPLATE = """ ENV_FILE_TEMPLATE = """
POSTGRES_DB=tgvkbot POSTGRES_DB=tgvkbot
@ -56,9 +57,10 @@ def set_env():
break break
except HTTPError: except HTTPError:
print('❌ VK APP ID неверный, попробуйте снова!') print('❌ VK APP ID неверный, попробуйте снова!')
with open('env_file', 'w') as env_file: with open('env_file', 'w') as env_file:
env_file.write(ENV_FILE_TEMPLATE % {'tg_token': tg_token, 'vk_app_id': vk_app_id or VK_APP_ID}, 'allowed_user_ids': '') env_file.write(s
ENV_FILE_TEMPLATE % {'tg_token': tg_token, 'vk_app_id': vk_app_id or VK_APP_ID, 'allowed_user_ids': ''})
print('✅ Успешно!') print('✅ Успешно!')