Docker-Micro服务公开使用fast.ai训练的ml模型

时间:2019-01-15 10:42:38

标签: python docker pip

我正在尝试构建一个运行微服务的docker,该服务将公开使用fast.ai训练的ml模型

我正在使用的Dockerfile

FROM python:3.6-alpine

MAINTAINER Spandan Singh "developer.spandan@gmail.com"

COPY ./app/requirements.txt /app/requirements.txt

WORKDIR /app

RUN pip install -r requirements.txt

COPY . /app

CMD ["python", "server.py"]

requirements.txt我正在使用

Flask==0.10.1
fastai==0.7.0

我遇到以下错误:

    Collecting pandas (from fastai->-r requirements.txt (line 2))
  Downloading https://files.pythonhosted.org/packages/e9/ad/5e92ba493eff96055a23b0a1323a9a803af71ec859ae3243ced86fcbd0a4/pandas-0.23.4.tar.gz (10.5MB)
    Complete output from command python setup.py egg_info:
    /bin/sh: svnversion: not found
    non-existing path in 'numpy/distutils': 'site.cfg'
    Could not locate executable gfortran
    Could not locate executable f95
    Could not locate executable ifort
    Could not locate executable ifc
    Could not locate executable lf95
    Could not locate executable pgfortran
    Could not locate executable f90
    Could not locate executable f77
    Could not locate executable fort
    Could not locate executable efort
    Could not locate executable efc
    Could not locate executable g77
    Could not locate executable g95
    Could not locate executable pathf95
    Could not locate executable nagfor
    don't know how to compile Fortran code on platform 'posix'
    Running from numpy source directory.
    /tmp/easy_install-t7xbqniu/numpy-1.16.0/setup.py:390: UserWarning: Unrecognized setuptools command, proceeding with generating Cython sources and expanding templates
      run_build = parse_setuppy_commands()
    /tmp/easy_install-t7xbqniu/numpy-1.16.0/numpy/distutils/system_info.py:625: UserWarning:
        Atlas (http://math-atlas.sourceforge.net/) libraries not found.
        Directories to search for the libraries can be specified in the
        numpy/distutils/site.cfg file (section [atlas]) or by setting
        the ATLAS environment variable.
      self.calc_info()
        return distutils.core.setup(**attrs)
      File "/usr/local/lib/python3.6/distutils/core.py", line 148, in setup
        dist.run_commands()
      File "/usr/local/lib/python3.6/distutils/dist.py", line 955, in run_commands
        self.run_command(cmd)
      File "/usr/local/lib/python3.6/distutils/dist.py", line 974, in run_command
        cmd_obj.run()
      File "/usr/local/lib/python3.6/site-packages/setuptools/command/bdist_egg.py", line 163, in run
        self.run_command("egg_info")  
    RuntimeError: Broken toolchain: cannot link a simple C program

    ----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-install-vuh6917n/pandas/

有人知道我错了吗?我是否还需要使用其他基本图像?

1 个答案:

答案 0 :(得分:1)

是的,您需要使用已经安装了大多数开发人员工具的操作系统中的另一个映像。我创建了一个Dockerfile,执行以下相同的安装:

FROM python:2.7.13

COPY . .

RUN pip install -r requirements.txt

CMD ["python", "server.py"]

要求:

Flask==0.10.1
fastai==0.7.0

区别似乎是Alpine是一个较小的,具有轻代码基础的操作系统,因此他可能没有包含所需的一切。

参考:

https://github.com/nengo/nengo/issues/508