Проблема со временем в Docker-compose (Redis, Celery, Django)
Пишу сервис рассылки, на Django (Redis + Celery)
docker-compose.yaml
version: "3.9"
services:
redis:
image: redis
restart: always
environment:
- "TZ=Europe/Moscow"
ports:
- '6379:6379'
webapp:
restart: always
build:
context: ./backend
ports:
- "8000:8000"
command: ["python3", "-u", "./src/manage.py", "runserver", "0.0.0.0:8000"]
worker:
restart: always
build:
context: ./backend
command: ['celery', '--workdir=./src', '-A', 'config', 'worker']
Dockerfile
FROM python:3.9
WORKDIR /app
COPY ./requirements.txt ./
RUN pip install -r requirements.txt
COPY ./src ./src
CMD ["python3", "-u", "./src/manage.py", "runserver", "0.0.0.0:8000"]
В Django при поставке задачи использую функцию apply_async(eta=datetime(2023, 10, 27, 10, 4))
Проблема заключается в том, что нужно ставить на минус 3 часа, чтобы код обработался в нужное время. В докере, заметил что в сервисе redis в логах -3 часа. Добавил строку в docker-compose environment: - "TZ=Europe/Moscow"
. В логах время изменилось, но на деле, всё так же надо выставлять на -3 часа. Не могу разобраться в чём проблема.
PS. В Django settings указаны время для приложения и для celery.
TIME_ZONE = 'Europe/Moscow'
USE_I18N = True
USE_TZ = True
CELERY_TIMEZONE = 'Europe/Moscow'