首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何通过安装卷启动osixia/openldap图像?

如何通过安装卷启动osixia/openldap图像?
EN

Stack Overflow用户
提问于 2019-02-08 13:57:51
回答 1查看 2.4K关注 0票数 0

我使用以下命令运行osixia/openldap和osixia/phpldapadmin (安装的卷):

代码语言:javascript
复制
docker run -p 389:389 -p 636:636 --name ldap-service --volume /data/slapd/database:/var/lib/ldap --volume /data/slapd/config:/etc/ldap/slapd.d  --hostname ldap-service --detach osixia/openldap:1.2.3 --copy-service --loglevel debug

docker run --name phpldapadmin-service --hostname phpldapadmin-service --link ldap-service:ldap-host --env PHPLDAPADMIN_LDAP_HOSTS=ldap-host --detach osixia/phpldapadmin:0.7.2

在第一次运行时,它会启动,但是在使用相同的命令重新启动服务器时,我得到了错误。

代码语言:javascript
复制
 - /container/run/startup/slapd failed with status 34
 - whereas status 34 refers to  LDAP_INVALID_DN_SYNTAX

无法找到解决这个问题的方法。有什么帮助吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-03-05 17:26:20

我已经解决了这个问题。

如果您查看文档,您将发现错误34表示无效的DN

当您使用docker初始化ldap服务器时,如果启动脚本没有找到您的LDAP_BASE_DN环境变量,它将从LDAP_DOMAIN生成一个变量,例如,LDAP_DOMAIN="xxx.com"将导致LDAP_BASE_DN="dc=xxx,dc=com"

但是,如果您停止您的容器,并启动另一个安装了旧卷的容器,那么启动scirpt将不会从您的LDAP_BASE_DN中生成LDAP_DOMAIN,当您查看调试日志时,您会发现它是用一个空的DN启动的。这就是为什么它不能正常启动的原因。

因此,解决方案是明确的:每次设置LDAP_BASE_DN,如果您使用一个坞-撰写文件,只需将它添加到您的“环境”部分。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54593959

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档