gpt4 book ai didi

python - 将 python 依赖项添加到 Docker 容器的好方法是什么?

转载 作者:IT老高 更新时间:2023-10-28 21:25:45 26 4
gpt4 key购买 nike

我正在尝试将 docker 集成到我的 django 工作流程中,除了一个非常烦人的问题外,我已经完成了所有设置。如果我想将依赖项添加到我的 requirements.txt 文件中,我基本上只需要重建整个容器镜像以使这些依赖项保持不变。

例如,我按照 django here 的 docker-compose 示例进行操作. yaml文件是这样设置的:

db:
image: postgres
web:
build: .
command: python manage.py runserver 0.0.0.0:8000
volumes:
- .:/code
ports:
- "8000:8000"
links:
- db

用于构建 Web 容器的 Docker 文件设置如下:

FROM python:2.7
ENV PYTHONUNBUFFERED 1
RUN mkdir /code
WORKDIR /code
ADD requirements.txt /code/
RUN pip install -r requirements.txt
ADD . /code/

因此,当为此容器构建镜像时,requirements.txt 会安装其中最初包含的任何依赖项。

如果我使用它作为我的开发环境,那么将任何新的依赖项添加到该 requirements.txt 文件变得非常困难,因为我必须重建容器才能安装 requirements.txt 中的更改。

在 django 社区中是否有某种最佳实践来处理这个问题?如果不是,我会说 docker 看起来非常适合在应用程序完成后打包应用程序,但作为开发环境使用并不是很好。重建容器需要很长时间,因此浪费了很多时间。

我感谢任何见解。谢谢。

最佳答案

您可以在使用 docker run 时将 requirements.txt 挂载为卷(未经测试,但您明白了要 pip ):

docker run container:tag -v /code/requirements.txt ./requirements.txt

然后您可以将脚本与您的容器捆绑在一起,该脚本将在启动您的应用程序之前运行 pip install -r requirements.txt,并将其用作您的 ENTRYPOINT。我喜欢自定义入口 pip 脚本方法,它让我无需创建新容器即可完成一些额外的工作。

也就是说,如果您正在更改您的依赖项,您可能正在更改您的应用程序,您可能应该创建一个新容器并使用更高版本对其进行标记,不是吗? :)

关于python - 将 python 依赖项添加到 Docker 容器的好方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31226319/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com