From 028c1ac91de4b80973160d009e2aa0cbcf584cba Mon Sep 17 00:00:00 2001 From: Ilya Bezrukov Date: Sun, 21 Jul 2024 04:46:50 +0300 Subject: [PATCH] Add docker things --- Dockerfile | 37 +++++++++++++++++++++++++++++++++++++ docker-compose.yml | 30 ++++++++++++++++++++++++++++++ 2 files changed, 67 insertions(+) create mode 100644 Dockerfile create mode 100644 docker-compose.yml diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..37c1154 --- /dev/null +++ b/Dockerfile @@ -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"] diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..a3fb432 --- /dev/null +++ b/docker-compose.yml @@ -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