Как запустить образ osixia / openldap с подключенными томами? - PullRequest
0 голосов
/ 08 февраля 2019

Я работаю osixia / openldap и osixia / phpldapadmin (тома смонтированы) с этими командами:

Docker run -p 389: 389 -p 636: 636 --name ldap-сервис --volume / data / slapd / database: / var / lib / ldap --volume /data/slapd/config:/etc/ldap/slapd.d - имя хоста ldap-service --detach osixia / openldap: 1.2.3 --copy-service --loglevel debug

запуск Docker - имя phpldapadmin-service - имя-хоста phpldapadmin-service --link ldap-service: ldap-host --env PHPLDAPADMIN_LDAP_HOSTS = ldap-host -detach osixia / phpldapadmin: 0.7.2

При первом запуске он запускается, но при перезапуске серверов с той же командой я получил ошибку

  • / container / run / startup / slapdошибка со статусом 34
  • , в то время как статус 34 относится к LDAP_INVALID_DN_SYNTAX

. Не удалось найти решение для этого.Любая помощь?

1 Ответ

0 голосов
/ 05 марта 2019

Я решил эту проблему.

Если вы посмотрите на документ, вы обнаружите ошибку 34, означающую недопустимое DN.

Когда вы инициализируете свой сервер ldap с помощью Docker, если сценарий запускане нашел вашу переменную среды 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, если вы используете файл docker-compose, просто добавьте его в раздел «environment».

...