[Docker] docker compose exemple avec gerrit/ldap/postgres
mardi 6 novembre 2018L’outil docker compose permet de faciliter la gestion de tous les paramètres à spécifié pour lancer un container et permet aussi de lancer plusieurs containers en même temps avec toutes leurs dépendances.
Pour installer docker-compose cliquer ici.
Pour cela, il suffit de créer un fichier docker-compose.yaml
On peut aussi définir un fichier .env à coté de notre fichier de configuration docker-compose qui contiendra les variables d’environnement pour notre fichier docker-compose.yaml.
Très utilise pour changer les paths entre chaque environnement
Voici un exemple pour installer gerrit avec ldap et postgres
Etape 1: On créé le fichier .env avec nos variables d’environnements (postgress user / db / pwd + externalpath + ldap-admin)
Etape 2: On créé notre fichier docker-compose.yaml comme ceci:
version: '3' services: gerrit: image: gerritcodereview/gerrit ports: - "29418:29418" - "80:8080" links: - postgres depends_on: - postgres - ldap volumes: - /external/gerrit/etc:/var/gerrit/etc - /external/gerrit/git:/var/gerrit/git - /external/gerrit/index:/var/gerrit/index - /external/gerrit/cache:/var/gerrit/cache # entrypoint: java -jar /var/gerrit/bin/gerrit.war init -d /var/gerrit postgres: image: postgres:9.6 environment: - POSTGRES_USER=gerrit - POSTGRES_PASSWORD=secret - POSTGRES_DB=reviewdb volumes: - /external/gerrit/postgres:/var/lib/postgresql/data ldap: image: osixia/openldap ports: - "389:389" - "636:636" environment: - LDAP_ADMIN_PASSWORD=secret volumes: - /external/gerrit/ldap/var:/var/lib/ldap - /external/gerrit/ldap/etc:/etc/ldap/slapd.d ldap-admin: image: osixia/phpldapadmin ports: - "6443:443" environment: - PHPLDAPADMIN_LDAP_HOSTS=ldap
Attention le paramètre links est super important car il permet aux containers de communiquer entre eux !
On utilise donc pas d’adresse ip ou de localhost dans les fichiers de configuration mais bien le hostname défini dans links.
Et pour tester cela on sait faire un ping du host dans le container !
Etape 3:On créé le fichier de config gerrit /external/gerrit/etc/gerrit.config
[gerrit] basePath = git canonicalWebUrl = http://localhost [database] type = postgresql hostname = postgres database = reviewdb username = gerrit [index] type = LUCENE [auth] type = ldap gitBasicAuth = true [ldap] server = ldap://ldap username=cn=admin,dc=example,dc=org accountBase = dc=example,dc=org accountPattern = (&(objectClass=person)(uid=${username})) accountFullName = displayName accountEmailAddress = mail [sendemail] smtpServer = localhost [sshd] listenAddress = *:29418 [httpd] listenUrl = http://*:8080/ [cache] directory = cache [container] user = root
Etape 4: on créé le fichier /external/gerrit/etc/secure.config avec les mot de passe
[database] password = secret [ldap] password = secret
Etape 5:Maintenant dans notre dossier projet on lance
docker-compose up -d postgres
qui va créé notre db review pour notre projet.
Etape 6: on vérifie dans les logs que tout est ok
docker-compose logs -f postgres
Etape 7: on lance gerrit en décomentant la ligne entrypoint: java -jar /var/gerrit/bin/gerrit.war init -d /var/gerrit du fichier docker-compose.yaml
docker-compose up gerrit
qui va créer tous les fichiers nécessaires pour initialiser gerrit en tenant compte du fichier de configuration de gerrit
Etape 8: Maintenant on peut lancer gerrit en demon si tout va bien
docker-compose up -d
Et accès via localhost:8080
Etape 9: Il reste à configurer le ldap avec le ldapmin.