当尝试在apline docker映像上安装最新的python-ldap版本3.4时(我使用python:3.9-alpine作为我的基本映像(,python-ldap的构建失败:
...
/usr/lib/gcc/x86_64-alpine-linux-musl/10.3.1/../../../../x86_64-alpine-linux-musl/bin/ld: cannot find -lldap_r
collect2: error: ld returned 1 exit status
error: command '/usr/bin/gcc' failed with exit code
...
已安装的依赖项:
apk add --no-cache --virtual .build-deps musl-dev gcc postgresql-dev openldap-dev libffi-dev
也尝试建立基础等,但没有成功。
非常感谢任何想法:(
当链接到OpenLDAP 2.5+时,python-ldap
包存在问题https://github.com/python-ldap/python-ldap/issues/432和https://github.com/python-ldap/python-ldap/issues/445.
经过测试的解决方案是第一期中描述的解决方案:
作为一种变通方法,创建包含内容的文件/usr/lib64/libldap_r.soINPUT(libldap.so(。该方法适用于所有使用GNU的系统ld兼容的链接器。
# cat > /usr/lib64/libldap_r.so << EOF
INPUT ( libldap.so )
EOF
您也可以以更简单的方式使用它(例如,在Dockerfiles中(:
echo -n "INPUT ( libldap.so )" > /usr/lib/libldap_r.so