2017-09-04 46 views
2

現在OpenShift Online V2已經宣佈它的服務結束,我正在尋找將我的Python應用程序遷移到OpenShift Online V3,又名OpenShift NextGen。熊貓是一個需求(並在requirements.txt中列出)OpenShift v3上的Pandas

它已經不是微不足道的get pandas installed in v2但V3不允許在構建過程中手動交互(或者是否?)。

當我嘗試構建我的應用程序時,構建過程在一小時後停止。 pip已經下載並安裝了requirements.txt的內容,並且正在爲選定的軟件包運行setup.py。日誌文件和日誌文件是

Running setup.py install for numpy 
Running setup.py install for Bottleneck 
Running setup.py install for numexpr 
Running setup.py install for pandas 

然後該過程停止,沒有任何錯誤消息。

有沒有人有線索如何構建OpenShift V3需要熊貓的Python應用程序?

+0

您試圖從requirements.txt文件安裝多少個不同的Python包?即使在重新創建Jupyter數據庫筆記本所使用的相同軟件包列表時,從未發現構建映像需要很長時間。你在哪個在線環境? –

+0

'requirements.txt'包含69行。在大約1小時左右之後,構建失敗之前,'pip'快速運行並停止運行'setup.py' for pandas。我正在使用OpenShift Online 3 Starter來了解移植工作將會有多大。 – Fabian

+0

你在哪個特定的入門級實例,us-east-1,us-west-1或其他?有些時候有些緩慢。 –

回答

5

這將是兩件事之一。

要麼編譯熊貓是一個巨大的內存豬,可能是由編譯器擊中一些病態的情況。或者,該點生成的圖像的大小超過了內部限制,因此耗盡了分配的磁盤空間。

如果是內存,則需要增加分配給構建窗格的內存。默認情況下在線這是512Mi。

要增加限制,您需要從Web控制檯編輯構建配置的YAML/JSON,或使用oc edit從命令行編輯YAML/JSON。

對於YAML,您需要添加以下內容:

resources: 
    limits: 
     memory: 1Gi 

這是設置字段:

$ oc explain bc.spec.resources.limits FIELD: limits <object> 

DESCRIPTION: 
    Limits describes the maximum amount of compute resources allowed. More 
    info: http://kubernetes.io/docs/user-guide/compute-resources/ 

最大的是1GI。這個值看起來增加了,這樣就可以完成構建,而增加到768Mi是不夠的。

請注意,這會使運行時的內存脫離compute-resources-timebound的配額,並且因爲它在構建期間全部使用它,所以您同時嘗試和執行的其他操作可能會受阻。

FWIW,在本地生成的圖像尺寸,而不是在網上,僅生產了:

172.30.1.1:5000/mysite/osv3test    latest    f323d9b036f6  About an hour ago 910MB 

因此,除非使用的東西都清理之前中介空間是一個問題,這不是一個問題。

因此增加用於構建的內存似乎是答案。

+0

太棒了!非常感謝,格雷厄姆,一路走來!這是內存限制(而不是圖像大小)。 v2的解決方案是手動刪除gcc的優化級別。我想,編譯器需要大量的內存資源來優化這些大型計算機生成的大熊貓隨附的c文件。 – Fabian

+1

如果軟件包有一個二進制輪,你也可以嘗試添加一個''.s2i/environment''文件並在其中添加''UPGRADE_PIP_TO_LATEST = 1''。默認情況下不使用最新的''pip''版本,舊版本在二進制輪子上有一些問題。所以可能的是,如果有一個輪子,新版本的「pip」可能會使用它,所以不必從源代碼編譯它。 –

+0

非常感謝。但看到沒有錯誤信息是非常不爽的! – bhushya