2017-07-25 43 views
0

我已經克隆了一個名爲Flasgger的開源項目(https://github.com/rochacbruno/flasgger)到本地文件夾。併爲其添加了一些更改。使用本地包的Docker的需求文件

現在我想用requirments.txt運行泊塢窗:

docker run \ 
    ... 
    -r requirements.txt \ 
    .... 

克隆的requirements.txt看上去像之前:

flasgger==0.6.5 

而且它會下載並使用flasgger從互聯網。


問題:現在我將如何修改requirements.txt使用我的本地的flasgger副本?

+0

這只是爲本地開發或產品?或兩者? – Grimmy

+0

可能不是python'requirements.txt.'的工作方式,但只是一個盲點。如果你在本地構建一個版本,並將其標記爲「互聯網中不存在的9.9.9」,那麼它總是會在本地尋找它,希望。 – Rash

+0

@Grimmy這只是爲了開發目的,沒有生產。 – Oleg

回答

1

理想情況下,你會在你的自定義flasgger源運行python setup.py bdist_wheel和上傳生成.whl -file私人Python包庫,所以你可以在你的Dockerfiledevpi is fairly easy to set up

pip安裝它要安裝一個Python包私人包回購:

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

RUN pip install --index-url <url for repo> -r custom-requirements.txt 

包回購的優勢在於您可以使用回滾或延遲升級的功能來構建和標記包的版本。

更便宜的選擇是複製圖像中的.whl文件並使用pip進行安裝。

也可以安裝一個包含pip的引用git repo或url的包。您只需將url添加到需求文件。

在本地開發中,您當然可以直接將軟件包目錄映射到容器中。

當你將一個項目拆分成多個包是服務/容器共享包時,你遇到同樣的問題。本地軟件包回購完全解決了這個問題。在本地玩雜耍很多.whl文件很快就變成了一場噩夢。