Docker镜像如何在本地构建,而不是在远程目标上构建?

时间:2015-04-07 18:56:29

标签: python docker

我们有一个看起来像这样的Dockerfile:

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镜像中,我不知道该怎么做。

1 个答案:

答案 0 :(得分:0)

此问题似乎是由于使用了泊坞窗覆盖存储后端。

我在这里提出了一个错误:https://github.com/docker/docker/issues/12327