Found the problem, turns out that docker is very picky about extra spaces when it parses docker-compose.yml
However even with the services running, the system fails to contact the external LDAP Server. Wireshark captures to the ODKv2 system keeps on showing it is trying to query a DNS A Record named “sync”, and “docker logs ” keeps showing it cannot connect to my external LDAP Server. AFAIK “sync” is a system available on the docker internal overlay network so no idea why it is trying to query externally, and the system cannot access the external LDAP probably because the internal container has issues accessing the external network i.e. it has no routes. The sync DNS Queries start happening the moment I switch the config file to “activeDirectory”.
This looks like a major bug in the system, and I doubt that any one has ever gotten to work with an external AD or LDAP.
Even the install at “mvn clean install” has issues even with all the prerequisites met. It got stuck testing mysql at the end and kept saying it cannot login using ‘odk_unit’@‘172.20.0.1’ just after it gets stuck at “writing large dataset” and I had to manually using another terminal do a “docker exec -it mysql -uroot -pmysqlPassword” and manually grant access! There is a script that does this in the mysql-test folder, but it looks like it is another HUGE bug in the code!! Even with all this effor the mysql test fails at the end >.<‘’ and this is following exactly step by step the instructions.
Docker just makes everything THAT much more complex!
For now I got it to run under POSTGRES Sql using the integrated OpenLDAP and im using a 3rd party tool to sync my Active Directory Users to OpenLDAP and exposing ports 389 and 686 by adding this do docker-compose.yml:
ldap-service:
image: odk/openldap
deploy:
replicas: 1
ports: <<—This
- “389:389” <<—This
- “636:636” <<—And This Line