python-如何使用Docker清除Django的缓存?

我有一个与memcached和Docker一起使用的Django项目.当我在开发中使用sudo docker-compose up时,我希望清除整个缓存.除了在开发模式下禁用批发缓存外,还有一种方法可以在每次重新运行sudo docker-compose up时运行this question中所述的cache.clear()吗?

我不确定这是否应该输入:

> docker-entrypoint.sh
> Docker文件
> docker-compose.yml
>还有其他地方吗?

docker-compose.yml:

version: "3"
services:
  redis:
    image: "redis:alpine"
    command: "redis-server --requirepass ${REDISPASS} --bind 0.0.0.0"
    ports:
      - '6379:6379'
  memcached:
    image: "memcached:latest"
    ports:
      - '11211:11211'
  nginx:
      image: nginx:latest
      volumes:
        - ./configuration/nginx/conf.d/:/etc/nginx/conf.d
        - ./configuration/nginx/realtime:/etc/nginx/realtime
        - ./static_cdn/static_root/static:/static
      ports:
        - 80:80
        - 443:443      
      depends_on:
        - app_main
        - app_async_app1
        - app_async_app2
  app_main:
      command: "djangoAppName.settings.prod ${SECRET_KEY} 1 ${DB_PASS}     ${REDISPASS}"      
      image: "django_image_name"
      ports:
        - 0003:0003
      volumes:
        - ./static_cdn/static_root/:/static_cdn/
      depends_on:
        - redis
        - memcached
 app_async_app2:
      command: "djangoAppName.settings.prod ${SECRET_KEY} 2 ${DB_PASS} ${REDISPASS}"      
      image: "django_image_name"
      ports:
        - 0002:0002
      depends_on:
        - redis
        - memcached
        - app_main
  app_async_app1:
      command: "djangoAppName.settings.prod ${SECRET_KEY} 3 ${DB_PASS} ${REDISPASS}"    
      image: "django_image_name"
      depends_on:
        - redis
        - memcached
        - app_main
      ports:
        - 0001:0001
  react:
      command: "npm run"
      image: "django_image_name"
      volumes:
        - ./static_cdn/static_root/:/static_cdn/
      depends_on:
        - memcached
        - app_main
最佳答案
根据this answer,您可以添加在清除缓存的memcached服务之前执行的服务.看起来您正在使用Linux Alpine,可以将此服务添加到docker-compose.yml中:

clearcache:
    command: [sh,-c,"python manage.py clear_cache"] 

然后添加到memcached:

memcached:
    ...
    depends_on:
     - clearcache

那里还有一个示例,它在同一命令中执行此操作,而不依赖于单独的服务(尽管我个人不喜欢这样做).

对于缓存清除命令,this answer提供了一些有用的讨论和帖子.

clear_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')

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


文章浏览阅读8.8k次,点赞2次,收藏7次。本文介绍Docker Compose的网络的配置。_docker compose 网络配置
文章浏览阅读1.5w次,点赞7次,收藏76次。原网提供的教程需要先刷系统到U盘,再把U盘的系统转移到emmc,但是我下面提供的镜像不需要此操作,注意区分。双头USB线一根(买或者自己做,网上有教程);电脑一台;镊子或者别针(或者其他导电的东西,用来短接主板);螺丝刀,电吹风(加热背胶更好撕);U盘一个(刷机和扩展玩客云硬盘容量都用得上);下面这些链接里面的资源下载备用。#镜像地址:https://www.aliyundrive.com/s/NXjbaKC3Hyq提取码: 5i7a。_玩客云 armbian
文章浏览阅读940次,点赞20次,收藏20次。通过 docker run 命令创建一个新的容器。
文章浏览阅读1k次,点赞20次,收藏20次。Podman 是一个开源的容器运行时项目,可在大多数 Linux平台上使用。Podman提供与Docker 非常相似的功能。Podman 提供了一个与 Docker 兼容的 CLI 工具(命令行界面),可以这样说,会使用 docker 基本就会使用 podman。_podman 替代
文章浏览阅读2.1k次。请注意,这些命令需要在 Docker 主机上执行,并且需要有相应的权限才能访问容器的日志文件。确保你有足够的权限来执行这些命令,或者在以管理员身份运行命令。此外,还要注意这些命令可能会清空所有容器的日志文件,包括正在运行的和已经停止的容器。如果只想清空特定容器的日志文件,可以根据需要修改命令。删除容器中netcore控制台存储到docker日志记录。_docker清空日志命令
文章浏览阅读1.1k次,点赞37次,收藏40次。nacos搭建集群连接mysql实现nginx负载均衡实现讲解。_niginx nacos 集群实现负载均衡
文章浏览阅读3.5k次,点赞35次,收藏36次。Docker 是一种容器引擎,可以在容器内运行一段代码。Docker 镜像是在任何地方运行您的应用程序而无需担心应用程序依赖性的方式。要构建镜像,docker 使用一个名为 Dockerfile 的文件。Dockerfile 是一个包含许多指令(RUN、COPY、EXPOSE 等)的文件。成功执行这些命令后,docker 将创建一个镜像供我们在任何地方使用。
文章浏览阅读2.6k次。2.即使在Dockerfile中换源,但在bulid过程中,依然可以注意到连接的是bebian官方源,因为debian 12改了,默认不使用/etc/apt/sources.list文件,这个文件初始是空的,真正的仓库配置在 /etc/apt/sources.list.d/ 目录下,故,修改源需要用RUN rm -rf /etc/apt/sources.list.d/*给每个pip install后面都加上-i https://pypi.tuna.tsinghua.edu.cn/simple。_error: failed to solve: process "/bin/sh -c yum makecache" did not complete
文章浏览阅读9.7k次,点赞2次,收藏4次。嗨,各位猫头虎博主的小伙伴们!。本文将详细分析该问题的根本原因、解决方法以及如何避免类似的状况。让我们一起来解决这个Bug吧!在云原生应用开发中,Docker是不可或缺的工具,但在使用过程中会遇到各种问题,OCI runtime create失败就是其中之一。本文通过深入分析问题的原因,提供了解决方法和避免类似问题的建议。希望本文能帮助您更好地理解和应对这个常见的Bug。_error response from daemon: oci runtime create failed: container_linux.go:34
文章浏览阅读2.2k次,点赞67次,收藏44次。[Docker实战] 旭日X3派上Docker Openwrt +Samba 实现局域网NAS && 开启AP模式
文章浏览阅读1k次,点赞52次,收藏38次。Docker的运行,依赖linux的环境,官方提供了Docker Desktop for Windows,但是它需要安装Hyper-V,Hyper-V是微软开发的虚拟机,类似于 VMWare 或 VirtualBox,仅适用于 Windows 10。安装过程如果出现超时,不要灰心,多试几次,总会成功的。执行完毕后会重启,在重启的过程中进行安装。此命令省略了镜像版本和运行参数,docker使用latest作为版本,即最新版本。从hello world的例子中,也可以体验到,docker实例的运行是非常快的。
文章浏览阅读3.6k次,点赞77次,收藏74次。【Docker】Docker的使用案例以及未来发展、Docker Hub 服务、环境安全的详细讲解
文章浏览阅读1w次。要删除已存在的 Docker 镜像,您可以使用docker rmi命令。以下是完整的流程。_docker 删除镜像
文章浏览阅读3.3k次。当安装好docker-compose并添加执行权限后,执行命令docker-compose 相关命令时出现 -bash: /usr/local/bin/docker-compose: 无法执行二进制文件。应该是安装包有问题,网上找了几种重新安装方法途径,还是会出现这个问题,最终找到一种可靠重新安装的解决方法,原文。2.从Docker官方网站下载Docker Compose最新版本的二进制文件(下载稍慢)3.授予Docker Compose二进制文件执行权限。1.先卸载Docker Compose的旧版本。_-bash: /usr/local/bin/docker-compose: cannot execute binary file
文章浏览阅读1.1k次。备注:Mysql5.7+ password字段 已改成 authentication_string字段。#备注:Mysql8.0修改密码方式已有变化(此处是个坑,需要注意)#设置完密码策略后重新输入修改命令,更改后的密码为123456。java默认安装路径/usr/lib/jvm/;#进入/etc/profile 配置文件。#查看正在使用的MySQL repo。#验证开启的8080端口是否生效。#验证开启的8080端口是否生效。#执行命令来开启8080端口。#先把root的旧密码置空。_yum install -y java 安装在什么目录
文章浏览阅读1.9k次。Windows11下清理Docker Desktop与wsl的C盘空间占用_wsl清理缓存
文章浏览阅读8.5k次,点赞2次,收藏20次。本机想要启用gpu加速计算,需要由一张多余的nVidia显卡。需要提前禁用nouveau:lsmod | grep nouveau没有输出即禁用了需要安装1、显卡驱动、2、cuda库(安装cuda会自动安装显卡驱动)3、cudnn(深度神经网络的GPU加速库,需要神经网络则安否则可以不安)安装完成后,可以运行nvidia-smi查看GPU设备的状态。_docker gpu
文章浏览阅读6k次,点赞14次,收藏39次。1.Dockerfile命令初识,CMD...;2.idea配置docker,图形化界面;3.编写Dockerfile把jar包制作成镜像,并用idea一键生成和启动容器;4.在Linux中测试,在宿主机用swagger进行测试;_springboot dockerfile
文章浏览阅读1k次,点赞2次,收藏2次。截止目前,Redis 的最新稳定版本是 6.2.6。这个版本在可读性、性能和稳定性方面进行了改进,并增加了一些新的命令和功能。_docker redis配置文件
文章浏览阅读1.5k次,点赞34次,收藏35次。使用上面的Cpolar https公网地址,在任意设备的浏览器进行访问,即可成功看到我们火狐浏览器界面,这样一个公网地址且可以远程访问就创建好了,使用了cpolar的公网域名,无需自己购买云服务器,即可发布到公网进行远程访问!上面在本地成功部署了FireFox 火狐浏览器,并局域网访问成功,下面我们在Linux安装Cpolar内网穿透工具,通过cpolar 转发本地端口映射的http公网地址,我们可以很容易实现远程访问,而无需自己注册域名购买云服务器.下面是安装cpolar步骤。