как запустить образ osixia / openldap с смонтированными томами?

Я запускаю 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 со статусом 34
  • тогда как статус 34 относится к LDAP_INVALID_DN_SYNTAX

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


person Zohaib Sohail    schedule 08.02.2019    source источник


Ответы (1)


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

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

Когда вы инициализируете свой ldap-сервер с помощью docker, если сценарий запуска не нашел вашу переменную среды LDAP_BASE_DN, он сгенерирует ее из LDAP_DOMAIN, например, LDAP_DOMAIN = "xxx.com" приведет к LDAP_BASE_DN = "dc = xxx, dc = com ".

Но если вы остановите свой контейнер и запустите другой со старым смонтированным томом, сценарий запуска не будет генерировать LDAP_BASE_DN из вашего LDAP_DOMAIN, когда вы посмотрите журнал отладки, вы обнаружите, что он запускается с пустым DN. Именно поэтому он не запускается нормально.

Итак, решение ясное: каждый раз устанавливайте LDAP_BASE_DN, если вы используете файл docker-compose, просто добавьте его в раздел «окружение».

person Mackerel    schedule 05.03.2019
comment
хорошо, они выпустили новое обновление, но я также использовал ваше решение, и оно сработало для меня - person Zohaib Sohail; 24.04.2019