使用Docker的需求文件的本地包

时间:2017-07-25 18:25:39

标签: docker

我已将一个名为Flasgger(https://github.com/rochacbruno/flasgger)的开源项目克隆到本地文件夹。并添加了一些更改。

现在我想使用requirments.txt

运行Docker
docker run \
    ...
    -r requirements.txt \
    ....

在克隆之前, requirements.txt 看起来像:

flasgger==0.6.5

它会从互联网上下载并使用flasgger

问题:现在我如何修改 requirements.txt 以使用flasgger的本地副本?

1 个答案:

答案 0 :(得分:2)

理想情况下,您可以在自定义闪存源中运行python setup.py bdist_wheel并将生成的.whl - 文件上传到私有python包存储库,以便在{{1}中使用pip进行安装(devpi is fairly easy to set up

从私有包repo安装python包:

Dockerfile

RUN pip install --index-url <url for repo> <package name==version>

软件包repo的优势在于您可以构建和标记软件包的版本,并能够回滚或延迟升级。

更便宜的替代方法是复制图片中的RUN pip install --index-url <url for repo> -r custom-requirements.txt 文件并使用.whl进行安装。

也可以使用引用git repo或url的pip安装包。您只需将URL添加到需求文件中。

在本地开发中,您当然可以直接将包目录映射到容器中。

当您将项目拆分为多个包时,您遇到了同样的问题,即服务/容器共享包。本地软件包repo完全解决了这个问题。在本地处理大量pip个文件很快就变成了一场噩梦。