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
|
||||
/__pycache__
|
||||
|
||||
# Database
|
||||
/*.db
|
||||
# Environment
|
||||
.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_DSN=xxx
|
||||
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