在我的 docker 镜像中,我克隆了 git master 分支来检索代码。我在开发环境中使用 docker-compose 并使用卷运行我的容器。从我的 python requirements.txt 文件安装新项目需求时遇到了一个问题。在开发环境中,它永远不会在开发环境中安装新的需求,因为在重新构建镜像时,最新的代码是从 github 中拉取的。
下面是我的 dockerfile 的一个例子:
FROM base
# Clone application
RUN git clone repo-url
# Install application requirements
RUN pip3 install -r app/requirements.txt
# ....
Run Code Online (Sandbox Code Playgroud)
这是我的撰写文件:
myapp:
image: development
env_file: .env
ports:
- "8000:80"
volumes:
- .:/home/app
command: python3 manage.py runserver 0.0.0.0:8000
Run Code Online (Sandbox Code Playgroud)
有没有办法在开发后安装新添加的需求?
我正在使用django-redis后端和django.core.cache.cache模块。django缓存模块似乎不支持推送到列表和处理某些数据结构的适当功能。
隐含的实现用于更新Django缓存模块中的列表:
my_list = cache.get('my_list')
my_list.append('my value')
cache.set('my_list', my_list)
Run Code Online (Sandbox Code Playgroud)
这种方法效率不高,因为整个列表都已加载到应用程序服务器的内存中。
Redis支持LPUSH / RPUSH命令以动态更新列表。但是,看起来这些方法在django缓存模块中不可用。
官方的python redis客户端似乎实现了这些方法。django不提供此实现有什么原因吗?我出于好奇而问。我可能错过了一些细节吗?