如何启动 osixia/openldap 已安装卷的映像?
how to start osixia/openldap image with volumes mounted?
我正在 运行ning osixia/openldap 和 osixia/phpldapadmin(已安装的卷)使用这些命令:
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
在第一个 运行 它启动但是在使用相同的命令重新启动服务器时我得到了错误
- /container/run/startup/slapd failed with status 34
- whereas status 34 refers to LDAP_INVALID_DN_SYNTAX
无法为此找到解决方案。有帮助吗?
我已经解决了这个问题。
如果你看文档,你会发现错误34代表无效DN
。
当您使用 docker 初始化您的 ldap 服务器时,如果启动脚本没有找到您的 LDAP_BASE_DN
环境变量,它将从 LDAP_DOMAIN
生成一个,例如 LDAP_DOMAIN="xxx.com"
将导致 LDAP_BASE_DN="dc=xxx,dc=com"
.
但是如果你停止你的容器,并启动另一个安装了旧卷的容器,启动脚本将不会从你的 LDAP_DOMAIN
生成 LDAP_BASE_DN
,当你查看调试日志时,你会发现它以空 DN
开始。这就是它无法正常启动的原因。
所以解决方案很明确:每次都设置LDAP_BASE_DN
,如果您使用docker-compose 文件,只需将它添加到您的“环境”部分。
我正在 运行ning osixia/openldap 和 osixia/phpldapadmin(已安装的卷)使用这些命令:
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
在第一个 运行 它启动但是在使用相同的命令重新启动服务器时我得到了错误
- /container/run/startup/slapd failed with status 34
- whereas status 34 refers to LDAP_INVALID_DN_SYNTAX
无法为此找到解决方案。有帮助吗?
我已经解决了这个问题。
如果你看文档,你会发现错误34代表无效DN
。
当您使用 docker 初始化您的 ldap 服务器时,如果启动脚本没有找到您的 LDAP_BASE_DN
环境变量,它将从 LDAP_DOMAIN
生成一个,例如 LDAP_DOMAIN="xxx.com"
将导致 LDAP_BASE_DN="dc=xxx,dc=com"
.
但是如果你停止你的容器,并启动另一个安装了旧卷的容器,启动脚本将不会从你的 LDAP_DOMAIN
生成 LDAP_BASE_DN
,当你查看调试日志时,你会发现它以空 DN
开始。这就是它无法正常启动的原因。
所以解决方案很明确:每次都设置LDAP_BASE_DN
,如果您使用docker-compose 文件,只需将它添加到您的“环境”部分。