Redis и Docker Permission Denied

Пытаюсь создать телеграм бота с сохранением данных в redis в docker. Работает нормально, но со временем подвисает и выдает ошибку:

Failed opening the RDB file crontab (in server root dir /etc) for saving: Permission denied

Мой docker-compose.yml

version: "3.9"


services:
  redis:
    container_name: redis
    image: redis:5.0.4-alpine
    user: root
    command:
      - redis-server
      - '--loglevel debug'
      - '--databases 2'
      - '--save 1 10'
      - '--dbfilename dump.rdb'
    volumes:
      - 'redis:/data'
    env_file:
      - .env
    restart: on-failure
    ports:
      - "6379:6379"



  bot:
    build: .
    command: python main.py
    user: root
    env_file:
      - .env
    restart: always
    depends_on:
      - redis

volumes:
  redis:

Мой Dockerfile:

FROM python:3.12

ENV PYTHONUNBUFFERED 1
ENV PYTHONDONTWRITEBYTECODE 1
ENV TZ=Europe/Moscow
RUN apt-get update && apt-get install -yy tzdata
RUN cp /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
WORKDIR /app
RUN TZ=Europe/Moscow

COPY requirements.txt requirements.txt
RUN pip3 install -r requirements.txt
RUN chmod 777 .
COPY . .

Проверил логи: После запроса с определенного IP

redis | 1:M 05 May 2024 23:36:42.038 - Accepted IP:36164

Выводятся сообщения

Failed opening the RDB file root (in server root dir /var/spool/cron) for saving: Permission denied

redis | 1:M 05 May 2024 23:36:45.174 # Background saving error

redis | 1:M 05 May 2024 23:36:45.337 # Failed opening the RDB file root (in server root dir /var/spool/cron) for saving: Permission denied

redis | 1:M 05 May 2024 23:36:45.886 # Failed opening the RDB file root (in server root dir /etc/crontabs) for saving: Permission denied

redis | 1:M 05 May 2024 23:36:46.160 # Failed opening the RDB file root (in server root dir /etc/crontabs) for saving: Permission denied

После этого проверяя config file redis, вылезает :

127.0.0.1:6379> config get dbfilename
1) "dbfilename"
2) "crontab"
127.0.0.1:6379>

То есть он меняет dump.rdb на contrab


Ответы (1 шт):

Автор решения: D S

Проблема была в том, что redis не требовал код для подключения к серверу, в итоге китайские боты заходили на мой сервак и ddos-или, меняя файлы БД, как я понял, чтобы майнить на серваке, IP Был один и тот же, после него все ломалось.

Решилось добавлением:

services:
  redis:
    container_name: redis
    image: redis:5.0.4-alpine
    user: root
    command:
      - redis-server
      - '--loglevel debug'
      - '--databases 2'
      - '--save 1 10'
      - '--dbfilename dump.rdb'
      - '--requirepass $REDIS_PASSWORD' #Не забывайте про пароль :) 
      - '--rename-command CONFIG "cfg0880"'
    volumes:
      - 'redis:/data'
    env_file:
      - .env
    restart: on-failure
    ports:
      - "6379:6379"
→ Ссылка