业务为未定义卷



我想在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"代替,这样芹菜和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

我做错了什么?

Upd: temp dir是我的项目文件夹(我已经在设置文件中设置了FILE_UPLOAD_TEMP_DIR变量),所以我不需要再为共享的临时文件制作一个卷(如果我必须,告诉我)。

您的共享卷名称是shared_web_volume,它与您在卷部分使用的shared_web_volume/不同

所以我的建议是删除正斜杠,像这样

volumes:
- "shared_web_volume:/MoreEnergy/"

不要忘记在芹菜容器中做同样的事情

最新更新