我正在尝试使用自定义架构创建一个openLDAP docker镜像,并且希望在修改它之前具有一个可用的LDAP服务。

我通过在dockerfile中安装了slapd和ldap-utils:

RUN DEBIAN_FRONTEND=noninteractive apt-get install -y slapd ldap-utils

此时,当我在新容器中打开bash时,service slapd status/etc/init.d/slapd status输出都“未运行slapd”。实际上,policy-rc拒绝在安装软件包后执行启动。

好吧,没问题,service slapd start返回OK并启动slapd服务。我可以在LDAP中搜索,修改它,一切都很好。

当我想重新启动slapd服务时,问题就来了。 service slapd restartservice slapd force-reloadservice slapd stopservice slapd start都在“开始”命令处失败。 “停止”命令返回OK。但是,这一次service slapd status返回“slapd正在运行”。另外,我仍然可以在LDAP中搜索。

为了进一步了解发生的事情,我尝试使用debug选项启动slapd服务,如下所示:
slapd -h 'ldap:/// ldapi:///' -g openldap -u openldap -F /etc/ldap/slapd.d -d stats

不幸的是,这卡在“巴掌开始”,永远不会结束。

谢谢你的帮助 :)

最佳答案

我有同样的问题。当进入容器内时,我发现停止拍打的唯一方法是pkill slapd
但是,这不适用于Dockerfilerun pkill slapd

07-24 22:12