使用本地包的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
?
理想情况下,您可以在自定义flasgger源代码中运行python setup.py bdist_wheel
,并将生成的.whl
file upload到私有python软件包存储库,以便您可以使用pip
将其安装在Dockerfile
( devpi相当容易设置 )
从私有包回购安装python包:
RUN pip install --index-url <url for repo> <package name==version>
要么
RUN pip install --index-url <url for repo> -r custom-requirements.txt
软件包回购的优势在于,您可以使用回滚或延迟升级的function来构build和标记软件包版本。
更便宜的select是复制图像中的.whl
文件并使用pip
安装。
也可以用pip
引用一个git repo或url来安装一个包。 您只需将url添加到需求文件。
在本地开发中,您当然可以将包目录直接映射到容器中。
当你将一个项目拆分成多个包时,碰到相同的问题,就是服务/容器共享包。 本地软件包回购完全解决这个问题。 在本地杂耍大量的.whl
文件很快就变成了一场噩梦。