2015-04-07 50 views
3

我們有一個Dockerfile,看起來像這樣:Docker圖像如何在本地構建,但不在遠程目標上?

from ubuntu:trusty 

RUN apt-get update && apt-get -y upgrade 
RUN apt-get install -y build-essential g++ libblas-dev liblapack-dev gfortran python-dev python-pip 

RUN pip install --upgrade numpy 
RUN pip install --upgrade statsmodels 
RUN pip install --upgrade flask 

COPY . server 

WORKDIR server 

EXPOSE 5000 

ENTRYPOINT python2 prediction_app.py 

在當地,這些步驟不完整的事件。然而,在我們的遠程目標,此步驟失敗:

RUN pip install --upgrade statsmodels 

當PIP試圖刪除一個目錄不爲空:

Found existing installation: six 1.5.2 
    Uninstalling six: 
    Successfully uninstalled six 
Cleaning up... 
Exception: 
Traceback (most recent call last): 
[... snip many lines ...] 
onerror(os.rmdir, path, sys.exc_info()) 
File "/usr/lib/python2.7/shutil.py", line 254, in rmtree 
os.rmdir(path) 
OSError: [Errno 39] Directory not empty:... 
Storing debug log for failure in /root/.pip/pip.log 

兩個問題:

  1. 如何這有可能是本地工作,並遠程失敗?他們不應該都以相同的方式失敗或以相同的方式成功,因爲他們都從相同的圖像開始?我試圖理解我的心理模型有什麼問題。

  2. 有沒有辦法查看失敗日誌?它看起來像被轉儲到一個不完整的Docker鏡像中,我不知道該如何解決這個問題。

+0

我不知道它是否有關。由於statsmodels沒有以pip兼容的方式指定依賴項,我建議明確apt-get或pip-install scipy,pandas和patsy。 – user333700

+0

@ user333700不幸的是這不是一個選項,因爲可靠的圖像的scipy太過時了。 –

+0

您在本地和遠程主機上運行什麼操作系統? –

回答

相關問題