我正在尝试构建一个运行微服务的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/
有人知道我错了吗?我是否还需要使用其他基本图像?
答案 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是一个较小的,具有轻代码基础的操作系统,因此他可能没有包含所需的一切。
参考: