运行 python-以官方 python docker 图像为基础的 ldap
run python-ldap with official python docker image as base
我正在使用 python docker 官方图像 python 2.7。我正在使用的应用程序需要 pyhon-ldap。
我的 docker 文件如下所示:
FROM python:2.7
ENV PYTHONUNBUFFERED 1
RUN mkdir /code
WORKDIR /code
ADD requirements.txt /code/
RUN pip install -r requirements.txt
ADD . /code/
其中 python-ldap 在 requirements.txt
我自然 运行 喜欢这个:
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
我知道这是因为没有安装 libldap2-dev 和其他一些软件包。所以我做了一些研究,发现官方 python 图像是用 debian jessy 构建的。我更像是一个 redhat 人,但我知道 apt-get,所以我将 docker 文件修改为以下内容:
FROM python:2.7
RUN apt-get install -y libldap2-dev
ENV PYTHONUNBUFFERED 1
RUN mkdir /code
WORKDIR /code
ADD requirements.txt /code/
RUN pip install -r requirements.txt
ADD . /code/
错误如下
Step 1 : RUN apt-get install -y libldap2-dev
---> Running in 2ca6155b606e
Reading package lists...
Building dependency tree...
Reading state information...
Package libldap2-dev is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source
E: Package 'libldap2-dev' has no installation candidate
好的,我发现回购协议丢失了,我做了更多的研究,然后回到 python 基本图像,我旋转了一个容器并四处乱逛。我可以证明安装了存储库(尽管老实说我不知道这些是否有效)
cat /etc/apt/sources.list
deb http://httpredir.debian.org/debian jessie main
deb http://httpredir.debian.org/debian jessie-updates main
deb http://security.debian.org jessie/updates main
我似乎不能完全确定发生了什么,但看起来 apt 实际上没有外部访问 repos 和 apt-cache 搜索只返回已经安装的包。我如何才能在容器中安装东西 and/or 重新配置它以实际执行任何操作?
有没有更好的方法来获取我需要用官方python镜像编译python-ldap的包?
运行 apt-get update
安装前应该做的工作:
RUN apt-get update && apt-get install -y libldap2-dev
这对我来说适用于 Python 3.4 和 Python 3.5:
RUN apt-get update && apt-get install -y python-dev libldap2-dev libsasl2-dev libssl-dev
我正在使用 python docker 官方图像 python 2.7。我正在使用的应用程序需要 pyhon-ldap。
我的 docker 文件如下所示:
FROM python:2.7
ENV PYTHONUNBUFFERED 1
RUN mkdir /code
WORKDIR /code
ADD requirements.txt /code/
RUN pip install -r requirements.txt
ADD . /code/
其中 python-ldap 在 requirements.txt
我自然 运行 喜欢这个:
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
我知道这是因为没有安装 libldap2-dev 和其他一些软件包。所以我做了一些研究,发现官方 python 图像是用 debian jessy 构建的。我更像是一个 redhat 人,但我知道 apt-get,所以我将 docker 文件修改为以下内容:
FROM python:2.7
RUN apt-get install -y libldap2-dev
ENV PYTHONUNBUFFERED 1
RUN mkdir /code
WORKDIR /code
ADD requirements.txt /code/
RUN pip install -r requirements.txt
ADD . /code/
错误如下
Step 1 : RUN apt-get install -y libldap2-dev
---> Running in 2ca6155b606e
Reading package lists...
Building dependency tree...
Reading state information...
Package libldap2-dev is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source
E: Package 'libldap2-dev' has no installation candidate
好的,我发现回购协议丢失了,我做了更多的研究,然后回到 python 基本图像,我旋转了一个容器并四处乱逛。我可以证明安装了存储库(尽管老实说我不知道这些是否有效)
cat /etc/apt/sources.list
deb http://httpredir.debian.org/debian jessie main
deb http://httpredir.debian.org/debian jessie-updates main
deb http://security.debian.org jessie/updates main
我似乎不能完全确定发生了什么,但看起来 apt 实际上没有外部访问 repos 和 apt-cache 搜索只返回已经安装的包。我如何才能在容器中安装东西 and/or 重新配置它以实际执行任何操作?
有没有更好的方法来获取我需要用官方python镜像编译python-ldap的包?
运行 apt-get update
安装前应该做的工作:
RUN apt-get update && apt-get install -y libldap2-dev
这对我来说适用于 Python 3.4 和 Python 3.5:
RUN apt-get update && apt-get install -y python-dev libldap2-dev libsasl2-dev libssl-dev