Python 如何使用Docker清除Django的缓存?
我有一个Django项目,我正在使用memcached和Docker。当我在开发中使用Python 如何使用Docker清除Django的缓存?,python,django,docker,docker-compose,memcached,Python,Django,Docker,Docker Compose,Memcached,我有一个Django项目,我正在使用memcached和Docker。当我在开发中使用sudocker compose up时,我希望清除整个缓存。在开发模式下,是否有一种方法可以运行cache.clear(),而不是像每次重新运行sudo docker compose-up时所述的那样禁用缓存 我不确定这是否应该进入: docker entrypoint.sh Dockerfile docker compose.yml 其他地方 docker-compose.yml: 根据,您可以添加在清除缓
sudocker compose up
时,我希望清除整个缓存。在开发模式下,是否有一种方法可以运行cache.clear()
,而不是像每次重新运行sudo docker compose-up
时所述的那样禁用缓存
我不确定这是否应该进入:
docker entrypoint.sh
Dockerfile
docker compose.yml
docker compose.yml
:
clearcache:
command: [sh, -c, "python manage.py clear_cache"]
然后添加到memcached
:
memcached:
...
depends_on:
- clearcache
这里还有一个例子,它使用同一个命令,不依赖于单独的服务(尽管我个人不喜欢这样)
对于缓存清除命令,有一些有用的讨论和帖子
清除_cache.py:
from django.core.management.base import BaseCommand
from django.core.cache import cache
class Command(BaseCommand):
def handle(self, *args, **kwargs):
cache.clear()
self.stdout.write('Cleared cache\n')
它应该是Dockerfile的CMD的一部分,但这取决于您如何组织docker配置。我相信它也可以进入docker compose.yml的
命令
键。如果你发布了你的设置,你会更容易根据它来推荐放置位置。谢谢@Nobilis。新增.yml。如果您认为这就是清除缓存所需的全部内容,请告诉我!谢谢你的帮助。
from django.core.management.base import BaseCommand
from django.core.cache import cache
class Command(BaseCommand):
def handle(self, *args, **kwargs):
cache.clear()
self.stdout.write('Cleared cache\n')