Docker - Микро сервис для демонстрации мл модели, обученной с использованием fast.ai - PullRequest
0 голосов
/ 15 января 2019

Я пытаюсь построить докер для запуска микросервиса, который будет выставлять модель ml, обученную с помощью fast.ai

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"]

needs.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 голосов
/ 06 февраля 2019

Да, вам нужно использовать другой образ из операционной системы, которая уже содержит большинство установленных инструментов разработчика. Я создал 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...