python docker模块_无法使用sasl python模块构建docker映像

我正在尝试在Mac(High Sierra)上构建包含Python 2的docker映像.这是docker文件. (构建命令:docker build -t integration_test.)

FROM python:2

WORKDIR /usr/src/app

COPY requirements.txt ./

RUN pip install -r requirements.txt

COPY . .

CMD [ "nosetests" ]

这是requirements.txt的内容

nose

pyhive

thrift

sasl

thrift_sasl

python-dateutil

future

six>=1.7.2

当我尝试构建docker映像时,出现以下错误.

Failed building wheel for sasl

Running setup.py clean for sasl

Running setup.py bdist_wheel for thrift-sasl: started

Running setup.py bdist_wheel for thrift-sasl: finished with status 'done'

Stored in directory: /root/.cache/pip/wheels/c8/3a/34/1d82df3d652788fc211c245d51dde857a58e603695ea41d93d

Running setup.py bdist_wheel for future: started

Running setup.py bdist_wheel for future: finished with status 'done'

Stored in directory: /root/.cache/pip/wheels/bf/c9/a3/c538d90ef17cf7823fa51fc701a7a7a910a80f6a405bf15b1a

Successfully built pyhive thrift thrift-sasl future

Failed to build sasl

Installing collected packages: nose, future, six, python-dateutil, pyhive, thrift, sasl, thrift-sasl

Running setup.py install for sasl: started

Running setup.py install for sasl: finished with status 'error'

Complete output from command /usr/local/bin/python -u -c "import setuptools, tokenize;__file__='/tmp/pip-install-Dd4Z7v/sasl/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-record-_rw4YI/install-record.txt --single-version-externally-managed --compile:

running install

running build

running build_py

creating build

creating build/lib.linux-x86_64-2.7

creating build/lib.linux-x86_64-2.7/sasl

copying sasl/__init__.py -> build/lib.linux-x86_64-2.7/sasl

running egg_info

writing requirements to sasl.egg-info/requires.txt

writing sasl.egg-info/PKG-INFO

writing top-level names to sasl.egg-info/top_level.txt

writing dependency_links to sasl.egg-info/dependency_links.txt

reading manifest file 'sasl.egg-info/SOURCES.txt'

reading manifest template 'MANIFEST.in'

writing manifest file 'sasl.egg-info/SOURCES.txt'

copying sasl/saslwrapper.cpp -> build/lib.linux-x86_64-2.7/sasl

copying sasl/saslwrapper.h -> build/lib.linux-x86_64-2.7/sasl

copying sasl/saslwrapper.pyx -> build/lib.linux-x86_64-2.7/sasl

running build_ext

building 'sasl.saslwrapper' extension

creating build/temp.linux-x86_64-2.7

creating build/temp.linux-x86_64-2.7/sasl

gcc -pthread -fno-strict-aliasing -g -O2 -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -Isasl -I/usr/local/include/python2.7 -c sasl/saslwrapper.cpp -o build/temp.linux-x86_64-2.7/sasl/saslwrapper.o

cc1plus: warning: command line option ‘-Wstrict-prototypes’ is valid for C/ObjC but not for C++

In file included from sasl/saslwrapper.cpp:254:0:

sasl/saslwrapper.h:22:23: fatal error: sasl/sasl.h: No such file or directory

#include

^

compilation terminated.

error: command 'gcc' failed with exit status 1

----------------------------------------

Command "/usr/local/bin/python -u -c "import setuptools, tokenize;__file__='/tmp/pip-install-Dd4Z7v/sasl/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-record-_rw4YI/install-record.txt --single-version-externally-managed --compile" failed with error code 1 in /tmp/pip-install-Dd4Z7v/sasl/

The command '/bin/sh -c pip install -r requirements.txt' returned a non-zero code: 1

我也看到过类似的问题here,它谈论在主机OS上安装依赖库.我想知道如何在docker image / container上完成此操作.

有人遇到过这个问题吗?关于如何解决这个问题有什么建议吗?

解决方法:

您需要将libsasl2-dev安装到Docker映像.

在安装pip之前,以最简单的形式将以下行添加到Dockerfile中:

RUN apt-get update && apt-get install libsasl2-dev

标签:docker,python,macos,pip

来源: https://codeday.me/bug/20191108/2008814.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值