2015-04-07 21 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

您在本地和远程主机上运行什么操作系统? –

回答

相关问题