2017-09-12 64 views
0

我在Docker中運行的CentOS-7虛擬機上有一個小型的python flask應用程序,還有一個nginx反向代理。在一些外部實用程序requirements.txt拉使用Git + SSH如:Python requirements.txt使用本地git依賴

git+ssh://path-to-our-repo/some-utility.git 

我不得不做出改變的工具,所以我克隆它在本地,我需要該應用使用我的本地版本。 說出克隆和修改的程序是在本地目錄:

/var/work/some-utility 

在requirements.txt我改變了進入:

git+file:///var/work/some-utility 

但是,當我嘗試使用

運行應用程序
sudo docker-compose up 

我得到錯誤信息

Invalid requirement: 'git+file:///var/work/some-utility' 
it looks like a path. Does it exist ? 

我怎樣才能使用我的本地副本「some-utility」?

我也試過:

git+file:///var/work/some-utility#egg=someutility 

但產生同樣的錯誤。我看了PIP install from local git repository

這涉及到這樣一個問題:

https://stackoverflow.com/questions/7225900/how-to-pip-install-packages-according-to-requirements-txt-from-a-local-directory?rq=1

我想大多數人會說爲什麼不在一些的實用程序,企業git倉庫的開發分支只是檢查,但對我來說我做沒有特權。

或者我的問題可能與碼頭有關,我需要將某個實用程序文件夾映射到碼頭容器,然後使用該路徑?我是碼頭工人。

---編輯---

謝謝你的答案。我試圖將一些公用事業文件夾添加到泊塢窗,compose.yml:

volumes: 
    - ./some-utility:/usr/local/some-utility 

再變requirements.txt到

git+file:///usr/local/some-utility 

但我們本地git倉庫只是去檢修,所以我將不得不等一會兒才能回來試試這個。

===編輯=== 2

後,我作出了上述變化,我跑碼頭工人,撰寫時,當它試圖建立我的端點的應用程序出現以下錯誤:

Cloning file:///usr/local/some-utility to /tmp/pip-yj9xxtae-build 
fatal: '/usr/local/some-utility' does not appear to be a git repository 

但/ usr/local/some-utility文件夾確實包含克隆的some-utility repo,我可以去那裏運行git status。

回答

1

如果您在容器內部運行pip install,那麼當然需要在容器內部提供/var/work/some-utility

您可以使用主機卷裝入暴露你的容器內的目錄,如:

docker run -v /var/work/some-utility:/var/work/some-utility ... 
相關問題