Add docker things

This commit is contained in:
Ilya Bezrukov 2024-07-21 04:46:50 +03:00
parent 028d51af18
commit 028c1ac91d
2 changed files with 67 additions and 0 deletions

37
Dockerfile Normal file
View File

@ -0,0 +1,37 @@
ARG PYTHON_VERSION=3.10
FROM python:${PYTHON_VERSION}-slim
# avoid .pyc and buffering stdout/stderr
ENV PYTHONDONTWRITEBYTECODE=1
ENV PYTHONUNBUFFERED=1
# add non-root user
ARG UID=1000
RUN adduser \
--disabled-password \
--no-create-home \
--uid "${UID}" \
--home "/app" \
bot
# install requirements
RUN --mount=type=cache,target=/root/.cache/pip \
--mount=type=bind,source=requirements.txt,target=requirements.txt \
pip install -r requirements.txt
# copy i18n files
COPY --chown=bot i18n.yaml i18n/i18n.yaml
VOLUME i18n/
# copy default configs
WORKDIR /app
COPY --chown=bot mybot mybot
# preapre environment
ENV SS_TYPE=memory
ENV I18N_PATH=/i18n/i18n.yaml
# set user
USER bot
CMD ["python3", "-m", "mybot"]

30
docker-compose.yml Normal file
View File

@ -0,0 +1,30 @@
version: "3.0"
volumes:
i18n: {}
redis-config: {}
redis-data: {}
services:
bot:
build:
dockerfile: Dockerfile
context: .
depends_on: [redis]
restart: unless-stopped
volumes:
- i18n:/i18n
env_file: .env
environment:
- SS_TYPE=memory # redis currently is broken
- SS_REDIS_HOST=redis
- SS_REDIS_PORT=6379
- SS_REDIS_PASSWORD=bot
redis:
image: redis
restart: unless-stopped
volumes:
- redis-config:/etc/redis
- redis-data:/data
command: redis-server --save 20 1 --loglevel warning --requirepass bot