Docker image (#42)
All checks were successful
continuous-integration/drone/push Build is passing
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #42 Reviewed-by: Alexey Skobkin <skobkin-ru@ya.ru>
This commit is contained in:
parent
e0992b2351
commit
3d40035f6b
17
.dockerignore
Normal file
17
.dockerignore
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
# Python
|
||||||
|
.venv
|
||||||
|
__pycache__
|
||||||
|
|
||||||
|
# GIT
|
||||||
|
.gitignore
|
||||||
|
|
||||||
|
#CI configuration
|
||||||
|
.drone.yml
|
||||||
|
pylama.ini
|
||||||
|
|
||||||
|
# Bot documentation
|
||||||
|
README.md
|
||||||
|
|
||||||
|
# Environment
|
||||||
|
.env
|
||||||
|
.env.dist
|
8
.env.dist
Normal file
8
.env.dist
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
RSSBOT_TG_TOKEN=1234567890:yourbotstoken
|
||||||
|
|
||||||
|
# Optional variables
|
||||||
|
# RSSBOT_DSN=xxx
|
||||||
|
# POSTGRES_USER=xxx
|
||||||
|
# POSTGRES_PASSWORD=xxx
|
||||||
|
# POSTGRES_DB=xxx
|
||||||
|
# LOG_LEVEL=INFO
|
4
.gitignore
vendored
4
.gitignore
vendored
|
@ -5,5 +5,5 @@
|
||||||
/.venv
|
/.venv
|
||||||
/__pycache__
|
/__pycache__
|
||||||
|
|
||||||
# Database
|
# Environment
|
||||||
/*.db
|
.env
|
||||||
|
|
21
Dockerfile
Normal file
21
Dockerfile
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
FROM python:3.10-alpine
|
||||||
|
|
||||||
|
WORKDIR /bot
|
||||||
|
|
||||||
|
COPY . .
|
||||||
|
|
||||||
|
RUN pip install -r requirements.txt
|
||||||
|
|
||||||
|
ENV PYTHONUNBUFFERED=1
|
||||||
|
|
||||||
|
# App settings
|
||||||
|
# https://www.postgresql.org/docs/current/libpq-connect.html#LIBPQ-CONNSTRING
|
||||||
|
ENV RSSBOT_DSN=postgres://username:password@hostname/database_name
|
||||||
|
# https://core.telegram.org/bots#6-botfather
|
||||||
|
ENV RSSBOT_TG_TOKEN=1234567890:yourbotstoken
|
||||||
|
# https://docs.python.org/3/howto/logging.html#logging-levels
|
||||||
|
ENV LOG_LEVEL=INFO
|
||||||
|
|
||||||
|
ENTRYPOINT [ "python" ]
|
||||||
|
|
||||||
|
CMD [ "bot.py" ]
|
41
README.md
41
README.md
|
@ -43,4 +43,43 @@ python bot.py
|
||||||
export RSSBOT_TG_TOKEN=xxx
|
export RSSBOT_TG_TOKEN=xxx
|
||||||
export RSSBOT_DSN=xxx
|
export RSSBOT_DSN=xxx
|
||||||
python update.py
|
python update.py
|
||||||
```
|
```
|
||||||
|
|
||||||
|
## Running prebuild Docker Image
|
||||||
|
|
||||||
|
### Running the bot
|
||||||
|
```shell
|
||||||
|
docker run -e RSSBOT_DSN=yyy RSSBOT_TG_TOKEN=xxx miroslavskaya/tg_rss_bot bot.py
|
||||||
|
```
|
||||||
|
|
||||||
|
### Running update
|
||||||
|
```shell
|
||||||
|
docker run -e RSSBOT_DSN=yyy RSSBOT_TG_TOKEN=xxx miroslavskaya/tg_rss_bot update.py
|
||||||
|
```
|
||||||
|
## Building and running Docker image from source
|
||||||
|
|
||||||
|
```shell
|
||||||
|
docker build . -t tg_rss_bot
|
||||||
|
```
|
||||||
|
|
||||||
|
### Running the bot
|
||||||
|
```shell
|
||||||
|
docker run -e RSSBOT_DSN=yyy RSSBOT_TG_TOKEN=xxx tg_rss_bot bot.py
|
||||||
|
```
|
||||||
|
|
||||||
|
### Running update
|
||||||
|
```shell
|
||||||
|
docker run -e RSSBOT_DSN=yyy RSSBOT_TG_TOKEN=xxx tg_rss_bot update.py
|
||||||
|
```
|
||||||
|
|
||||||
|
## Using Docker Compose
|
||||||
|
|
||||||
|
### Running the bot
|
||||||
|
```shell
|
||||||
|
docker-compose up
|
||||||
|
```
|
||||||
|
|
||||||
|
### Running the update
|
||||||
|
```shell
|
||||||
|
docker-compose run app update.py
|
||||||
|
```
|
||||||
|
|
32
docker-compose.yml
Normal file
32
docker-compose.yml
Normal file
|
@ -0,0 +1,32 @@
|
||||||
|
version: '3.7'
|
||||||
|
|
||||||
|
services:
|
||||||
|
app:
|
||||||
|
build: .
|
||||||
|
image: miroslavsckaya/tg_rss_bot
|
||||||
|
environment:
|
||||||
|
# DSN schema: postgres://username:password@hostname/database_name
|
||||||
|
# https://www.postgresql.org/docs/current/libpq-connect.html#LIBPQ-CONNSTRING
|
||||||
|
- "RSSBOT_DSN=postgres://${BOT_DB_USER:-bot}:${BOT_DB_PASSWORD:-dev}@${BOT_DB_HOST:-db}/${BOT_DB_NAME:-bot}"
|
||||||
|
# https://core.telegram.org/bots#6-botfather
|
||||||
|
- "RSSBOT_TG_TOKEN=${RSSBOT_TG_TOKEN}"
|
||||||
|
# https://docs.python.org/3/howto/logging.html#logging-levels
|
||||||
|
- "LOG_LEVEL=${LOG_LEVEL:-INFO}"
|
||||||
|
depends_on:
|
||||||
|
- postgres
|
||||||
|
restart: unless-stopped
|
||||||
|
|
||||||
|
db:
|
||||||
|
image: postgres:14-alpine
|
||||||
|
environment:
|
||||||
|
# Postgres settings
|
||||||
|
# https://hub.docker.com/_/postgres
|
||||||
|
- "POSTGRES_USER=${BOT_DB_USER:-bot}"
|
||||||
|
- "POSTGRES_PASSWORD=${BOT_DB_PASSWORD:-dev}"
|
||||||
|
- "POSTGRES_DB=${BOT_DB_NAME:-bot}"
|
||||||
|
volumes:
|
||||||
|
- db-data:/var/lib/postgresql/data
|
||||||
|
restart: unless-stopped
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
db-data:
|
Loading…
Reference in a new issue