У меня проблемы с Django + Docker + Celery
Я пытаюсь изучить некоторые моменты развертывания. Я пытался развернуть мое django приложение на моем linux debian сервере, используя Django + Nginx + PGSQL + Celery, обернув все это в Docker контейнеры. Но когда я запускаю django и celery отдельно (через build: .), я сталкиваюсь с проблемой, что celery stalks возвращает, например, "no such column account_user" при доступе к базе данных, хотя у меня есть пользователи. Если развернуть django через "build: .", а для celery указать "image: celery", то возникает проблема, что celery не видит django (обычно возвращается либо "no module named "django"", либо "no module named "celery_app""). Я не знаю, насколько понятен мой вопрос, но есть ли способ развернуть Django + Celery так, чтобы все работало и у celery был доступ к базе данных и к окружению Django?
docker-compose.yml
version: "3.8"
services:
django:
build: .
restart: on-failure
command: bash -c "python manage.py collectstatic --noinput && python manage.py migrate && gunicorn angelina.wsgi:application --bind 0.0.0.0:8000"
volumes:
- static:/home/web/home_page/static
- .:/home/web/
ports:
- "8000:8000"
env_file:
- ./.env.dev
depends_on:
- db
- redis
db:
image: postgres:13
restart: on-failure
volumes:
- postgres_data:/var/lib/postgresql/data
environment:
- POSTGRES_USER=dalorevacation
- POSTGRES_PASSWORD=*UHBytr7
- POSTGRES_DB=db
nginx:
image: nginx
restart: on-failure
build: ./deploy/nginx
ports:
- 80:80
volumes:
- static:/home/web/home_page/static
- ./deploy/nginx:/etc/nginx/conf.d
depends_on:
- django
redis:
image: redis
restart: on-failure
celery:
build: .
restart: on-failure
command: bash -c "celery -A angelina worker -l info"
volumes:
- .:/home/web/
env_file:
- ./.env.dev
depends_on:
- db
- django
- redis
volumes:
postgres_data:
static:
media:
redisdata:
Существует Dockerfile
FROM python:3.8.5-slim
ENV PYTHONUNBUFFERED=1 \
PYTHONDONTWRITEBYTECODE=1
WORKDIR /home/web/
COPY ./requirements.txt /home/web/requirements.txt
RUN pip install --upgrade pip
RUN pip install --no-cache-dir -r requirements.txt
COPY . /home/web/