docker-phpLDAPadmin icon indicating copy to clipboard operation
docker-phpLDAPadmin copied to clipboard

PHPLDAPADMIN_LDAP_HOSTS environment not working in docker-compose

Open amsdard opened this issue 10 years ago • 7 comments

Hi,

I've tried everything and I can't make phpldapadmin to use PHPLDAPADMIN_LDAP_HOSTS when using docker-compose.

If I want to pass ldap hosts setting in environment like this:

environment: - PHPLDAPADMIN_LDAP_HOSTS = "[{'openldap': [{'server': [{'tls': True}] }] }]"

docker-compose throws error:

ERROR: yaml.parser.Parser Error: while parsing a block mapping.

When I try to use env.yml and pass it via env_file, all variables except for PHPLDAPADMIN_LDAP_HOSTS are used. So instead of my custom ldap host I get default "ldap.example.org"

The only way I was able to set ldap hosts was with

environment: - PHPLDAPADMIN_LDAP_HOSTS=openldap

but this way I can't set tls=True.

Any ideas how to make it work?

amsdard avatar Dec 12 '15 21:12 amsdard

Hi,

can you provide a docker-compose example that failed ? It's look like the value of the environment variable must be escaped.

Sorry I'm not familiar with docker-compose i use kubernetes personally.

osixia avatar Dec 14 '15 08:12 osixia

I've manage to make it work by pssing environment like this:

    - PHPLDAPADMIN_LDAP_HOSTS=PHPLDAPADMIN_LDAP_HOSTS_1
    - PHPLDAPADMIN_LDAP_HOSTS_1_KEY=openldap
    - PHPLDAPADMIN_LDAP_HOSTS_1=PHPLDAPADMIN_LDAP_HOSTS_1_KEY PHPLDAPADMIN_LDAP_HOSTS_1_VALUE
    - PHPLDAPADMIN_LDAP_HOSTS_1_VALUE= PHPLDAPADMIN_LDAP_HOSTS_1_VALUE_1 PHPLDAPADMIN_LDAP_HOSTS_1_VALUE_2

    - PHPLDAPADMIN_LDAP_HOSTS_1_VALUE_1=PHPLDAPADMIN_LDAP_HOSTS_1_VALUE_1_KEY PHPLDAPADMIN_LDAP_HOSTS_1_VALUE_1_VALUE
    - PHPLDAPADMIN_LDAP_HOSTS_1_VALUE_1_KEY=server
    - PHPLDAPADMIN_LDAP_HOSTS_1_VALUE_1_VALUE=PHPLDAPADMIN_LDAP_HOSTS_1_VALUE_1_VALUE_1
    - PHPLDAPADMIN_LDAP_HOSTS_1_VALUE_1_VALUE_1=PHPLDAPADMIN_LDAP_HOSTS_1_VALUE_1_VALUE_1_KEY PHPLDAPADMIN_LDAP_HOSTS_1_VALUE_1_VALUE_1_VALUE
    - PHPLDAPADMIN_LDAP_HOSTS_1_VALUE_1_VALUE_1_KEY=tls
    - PHPLDAPADMIN_LDAP_HOSTS_1_VALUE_1_VALUE_1_VALUE=True

    - PHPLDAPADMIN_LDAP_HOSTS_1_VALUE_2=PHPLDAPADMIN_LDAP_HOSTS_1_VALUE_2_KEY PHPLDAPADMIN_LDAP_HOSTS_1_VALUE_2_VALUE
    - PHPLDAPADMIN_LDAP_HOSTS_1_VALUE_2_KEY=login
    - PHPLDAPADMIN_LDAP_HOSTS_1_VALUE_2_VALUE= PHPLDAPADMIN_LDAP_HOSTS_1_VALUE_2_VALUE_1
    - PHPLDAPADMIN_LDAP_HOSTS_1_VALUE_2_VALUE_1=PHPLDAPADMIN_LDAP_HOSTS_1_VALUE_2_VALUE_1_KEY PHPLDAPADMIN_LDAP_HOSTS_1_VALUE_2_VALUE_1_VALUE
    - PHPLDAPADMIN_LDAP_HOSTS_1_VALUE_2_VALUE_1_KEY=bind_id
    - PHPLDAPADMIN_LDAP_HOSTS_1_VALUE_2_VALUE_1_VALUE=cn=admin,dc=openldap

In all other cases phpldapadmin was using default hosts as setting:

environment:

  • PHPLDAPADMIN_LDAP_HOSTS = "[{'openldap': [{'server': [{'tls': True}] }] }]"

resulted in PHPLDAPADMIN_LDAP_HOSTS environment being empty.

amsdard avatar Dec 14 '15 13:12 amsdard

Hi @amsdard would you please share your docker-compose config file? It would be helpful to set it up for others.

Thanks!

sebastiankrupa avatar Dec 07 '16 15:12 sebastiankrupa

Docker Stack is affected too:

version: "3.7"
services:
  openldap:
    command: "--loglevel debug"
    image: "osixia/openldap"
    hostname: "openldap"
    environment:
      LDAP_DOMAIN: "flipdot.org"
      LDAP_LOGIN_DN: "dc=flipdot,dc=org"
      LDAP_ADMIN_PASSWORD: "admin"
    ports:
    - "389:389"
    - "639:639"
  phpldapadmin:
    command: "--loglevel debug"
    environment:
      PHPLDAPADMIN_LDAP_HOSTS: "openldap"
      PHPLDAPADMIN_HTTPS: "false"
    image: "osixia/phpldapadmin"
    ports:
    - "6443:443"
    - "6080:80"
    volumes:
    - "phpldapadmin-data:/var/www/phpldapadmin"
volumes:
  phpldapadmin-data: {}

One is forced to name the service ldap to be able to connect with phpLDAPadmin.

dargmuesli avatar Oct 30 '18 20:10 dargmuesli

Hi, we are trying to achieve the same configuration in marathon, we do not have sub network created for the group, we must set the external port, how can we do?

kopax avatar Apr 18 '19 16:04 kopax

I have the same problem. Docker version 18.09.3, build 774a1f4 docker-compose version 1.17.1, build unknown on Ubuntu 18.04 LTS compose is

version: "3"

services:
  ldap:
    image: osixia/openldap
    expose:
      - 389
      - 636
    environment:
      LDAP_ORGANISATION: "mycompany.org"
      LDAP_DOMAIN: "ldap.mycompany.org"
      LDAP_ADMIN_PASSWORD: ${LDAP_ADMIN_PASSWORD}
      LDAP_BASE_DN: ""
    command: --copy-service
    volumes:
      - ./ldap:/container/service/slapd/assets/config/bootstrap/ldif/custom

  ldap_admin:
      image: osixia/phpldapadmin
      depends_on:
        - ldap
      ports:
        - "6443:443"
      environment:
        PHPLDAPADMIN_LDAP_HOSTS: ldap

DemianTinkiel avatar Aug 07 '19 10:08 DemianTinkiel

I've manage to make it work by pssing environment like this: @amsdard this didn't work for me. Any chance you could share your compose yml?

DemianTinkiel avatar Aug 07 '19 10:08 DemianTinkiel