我已将一个名为Flasgger(https://github.com/rochacbruno/flasgger)的开源项目克隆到本地文件夹。并添加了一些更改。
现在我想使用requirments.txt
:
docker run \
...
-r requirements.txt \
....
在克隆之前, requirements.txt 看起来像:
flasgger==0.6.5
它会从互联网上下载并使用flasgger
。
问题:现在我如何修改 requirements.txt 以使用flasgger
的本地副本?
答案 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
个文件很快就变成了一场噩梦。