在Docker中使用python-ldap
2017-06-28 11:28:53 +08 字数:667 标签: Python LDAP Docker本文介绍如何在Docker镜像python:alpine
中安装python-ldap模块,并且尽量保持镜像的身材。
简介 ¶
python-ldap是一个Python的第三方库,包装了OpenLDAP的客户端,提供了面向对象的LDAP访问功能。 目前,它只支持Python 2.x。
和其它Python包一样,它的安装命令很简单。
pip install python-ldap
然而, 在比较干净的环境下——比如Docker——安装时,会出现错误。 主要原因是,这并非一个纯粹的Python包,而是包含了C语言的内容。 安装时,会自动开始编译,需要安装环境自备编译依赖。
编译依赖 ¶
- Python version 2.3 or later including its development files: http://www.python.org/
- OpenLDAP client libs version 2.4.11 or later: http://www.openldap.org/ It is not possible and not supported to build with prior versions.
- OpenSSL (optional): http://www.openssl.org/
- cyrus-sasl (optional): http://www.cyrussasl.org
- Kerberos libs, MIT or heimdal (optional)
运行依赖 ¶
- ldap, ldap_r The LDAP protocol library of OpenLDAP. ldap_r is the reentrant version and should be preferred.
- lber The BER encoder/decoder library of OpenLDAP.
- sasl2 The Cyrus-SASL library if needed and present during build
- ssl The SSL/TLS library of OpenSSL if needed and present during build
- crypto The basic cryptographic library of OpenSSL if needed and present during build
Dockerfile(部分) ¶
FROM python:2.7.13-alpine
MAINTAINER "Yan QiDong <yanqd1@lenovo.com>"
RUN apk update && apk add \
libldap \
gcc \
libc-dev \
python-dev \
openldap-dev \
&& pip install --no-cache-dir python-ldap \
&& apk del \
gcc \
libc-dev \
python-dev \
openldap-dev \
&& rm -rf /tmp/*
说明 ¶
FROM python:2.7.13-alpine
基于python:2.7.13-alpine
镜像。
其中,镜像自带libcrypto1.0与libssl1.0。 在安装libldap时会自动安装libsasl,这样运行环境就齐备了。
安装前,需要准备编译环境,即gcc、libc-dev、python-dev与openldap-dev。 安装后,这些运行时非必须的模块,都可以删除。
总结 ¶
如果是用基于Debian的python:2.7.13
来做,会简单很多。
只是镜像也会大很多,python:2.7.13
光自身就近700MB了。