我正在尝试使用自定义架构创建一个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 restart
或service slapd force-reload
或service slapd stop
和service 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
但是,这不适用于Dockerfile
和run pkill slapd