2017-08-24 13 views
0

私はdockerでDjangoの実装を構築しています。私はベースとしてPythonのコンテナを使用していますが、私の要件に私が下記したファイル: -Docker - pip経由でモジュールをインストールするためのPython依存関係

boto==2.43.0 
boto3==1.4.4 
botocore==1.5.55 
ciscoconfparse==1.2.47 
Django==1.11.4 
django-appconf==1.0.2 
django-auth-ldap==1.2.10 
django-dbtemplates==2.0 
django-debug-toolbar==1.7 
easy-thumbnails==2.3 
easysnmp==0.2.4 
ipaddress==1.0.18 
Jinja2==2.9.5 
mysqlclient-1.3.10 
netmiko==1.2.8 
O365==0.9.5 
orionsdk==0.0.6 
paramiko==2.1.2 
python-dateutil==2.6.0 
python-ldap==2.4.32 
pytz==2016.10 
pyOpenSSL==17.2.0 
sqlparse==0.2.3 
urllib3==1.21.1 
joblib==0.11 

は、これらのいくつかは、たとえば、独自の上のpythonコンテナを使用すると失敗の依存関係を持っている...

#include <net-snmp/net-snmp-config.h> 
             ^
    compilation terminated. 
    error: command 'gcc' failed with exit status 1 

    ---------------------------------------- 
    Failed building wheel for easysnmp 
... 
... 
    #include "lber.h" 
        ^
    compilation terminated. 
    error: command 'gcc' failed with exit status 1 

    ---------------------------------------- 
    Failed building wheel for pyldap 
... 
... 
    In file included from Modules/LDAPObject.c:9:0: 
    Modules/errors.h:8:18: fatal error: lber.h: No such file or directory 
    #include "lber.h" 
        ^
    compilation terminated. 
    error: command 'gcc' failed with exit status 1 

    ---------------------------------------- 
Command "/usr/local/bin/python -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-aufmftap/pyldap/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-fjdz1te2-record/install-record.txt --single-version-externally-managed --compile" failed with error code 1 in /tmp/pip-build-aufmftap/pyldap/ 

どのように私はPythonモジュールのOS依存関係をインストールしますか?コンテナ内で?適切な依存関係を得るためにPythonコンテナが実行されるのは何ですか?あなたが現在、最新であるpython:3.6画像を使用していると仮定すると、

おかげ

+0

あなたはコンテナにいくつかの追加(非Pythonの)パッケージをインストールする必要がありますように見えますこの場合、 'net-snmp'や' libldap'のようになります。 – Thomas

+0

どうすればいいですか? – AlexW

+0

どのDockerのpythonイメージ(どのタグ)を使用していますか? –

答えて

4

は、あなたには、いくつかの追加のライブラリをインストールする必要があります。

Dockerfile例(ピップライブラリがrequirements.txtファイル内にある):

FROM python:3.6 

RUN apt-get update -y \ 
    && apt-get install libsasl2-dev python-dev libldap2-dev libssl-dev libsnmp-dev 

COPY requirements.txt requirements.txt 

RUN pip install -r requirements.txt 

関連質問:I can't install python-ldap

関連する問題