Услуга относится к неопределенному объему

Я хочу обмениваться временными файлами между проектом Django и celery worker (он работает с TemporaryUploadedFiles, поэтому я хочу иметь доступ к этим файлам из celery worker, чтобы управлять ими). Я читал об общих томах, поэтому я попытался включить их в мой файл docker-compose и запустить его, но команда выдала мне такую ошибку:

$ docker compose up --build
service "web" refers to undefined volume shared_web_volume/: invalid compose project

Иногда "web" заменяется на "celery", так что и celery, и django не имеют доступа к этому объему.

Вот мой docker-compose.yml файл:

volumes:
  shared_web_volume:
  postgres_data:

services:
  db:
    image: postgres:12.0-alpine
    ports:
      - "5432:5432"
    volumes:
      - postgres_data:/var/lib/postgresql/data/
    env_file:
      - ./.env
  web:
    build:
      context: ./MoreEnergy
      dockerfile: Dockerfile
    entrypoint: sh ./entrypoint.sh
    command: python manage.py runserver 0.0.0.0:8000
    volumes:
      - "shared_web_volume/:/MoreEnergy/"
    ports:
      - 1337:8000
    env_file:
      - ./.env
    depends_on:
      - db
  celery:
    build:
      context: ./MoreEnergy
      dockerfile: Dockerfile
    entrypoint: sh ./entrypoint.sh
    command: celery  -A MoreEnergy worker --loglevel=info
    volumes:
      - "shared_web_volume/:/MoreEnergy/"
    env_file:
      - ./.env
    depends_on:
      - web
      - redis
  redis:
    image: redis:5-alpine

Что я делаю не так?

Обновление: temp dir - это папка моего проекта (я задал ее переменной FILE_UPLOAD_TEMP_DIR в файле настроек), поэтому мне не нужно делать еще один том только для общих временных файлов (если нужно, скажите мне).

имя вашего общего тома shared_web_volume и оно отличается от того, которое вы используете в разделе томов shared_web_volume/

поэтому я предлагаю стереть косую черту, чтобы было так

    volumes:
      - "shared_web_volume:/MoreEnergy/"

Не забудьте сделать то же самое в контейнере с сельдереем

Вернуться на верх