osixia / docker-phpLDAPadmin

phpLDAPadmin container image 🐳🌴
MIT License
844 stars 197 forks source link

PHPLDAPADMIN_LDAP_HOSTS environment not working in docker-compose #12

Open amsdard opened 8 years ago

amsdard commented 8 years ago

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?

osixia commented 8 years ago

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.

amsdard commented 8 years ago

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.

sebastiankrupa commented 7 years ago

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

Thanks!

dargmuesli commented 5 years ago

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.

kopax commented 5 years ago

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?

DemianTinkiel commented 5 years ago

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 commented 5 years ago

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?