version: '3.8' name: mattermost_ldap_project services: postgres: image: postgres:14-alpine container_name: mattermost_postgres_ldap restart: unless-stopped ports: - "5434:5432" volumes: - ${COMPOSE_PROJECT_DIR:-D:/00_test/01}/volumes/postgres_ldap:/var/lib/postgresql/data environment: - POSTGRES_USER=mmuser - POSTGRES_PASSWORD=mmuser_password - POSTGRES_DB=mattermost healthcheck: test: ["CMD", "pg_isready", "-U", "mmuser"] interval: 10s timeout: 5s retries: 5 start_period: 30s ldap: image: osixia/openldap:1.4.0 container_name: mattermost_ldap_server restart: unless-stopped domainname: "example.com" hostname: "ldap" command: --copy-service ports: - "389:389" - "636:636" volumes: - ${COMPOSE_PROJECT_DIR:-D:/00_test/01}/volumes/ldap/bootstrap.ldif:/container/service/slapd/assets/config/bootstrap/ldif/50-bootstrap.ldif environment: LDAP_ORGANISATION: "Example Corp" LDAP_DOMAIN: "example.com" LDAP_ADMIN_PASSWORD: "123456" LDAP_READONLY_USER: "true" LDAP_READONLY_USER_USERNAME: "butler" LDAP_READONLY_USER_PASSWORD: "readonly" phpldapadmin: image: osixia/phpldapadmin:latest container_name: mattermost_ldap_admin restart: unless-stopped ports: - "8080:80" environment: PHPLDAPADMIN_LDAP_HOSTS: ldap PHPLDAPADMIN_HTTPS: "false" depends_on: - ldap webserver: image: nginx container_name: mattermost_ldap_nginx restart: unless-stopped ports: - "80:80" - "443:443" volumes: - ${COMPOSE_PROJECT_DIR:-D:/00_test/01}/volumes/oauth:/var/www/html/oauth - ${COMPOSE_PROJECT_DIR:-D:/00_test/01}/volumes/nginx/nginx.conf:/etc/nginx/nginx.conf depends_on: - php php: build: ${COMPOSE_PROJECT_DIR:-D:/00_test/01}/Docker/php-ldap-pgsql image: php-ldap-pgsql container_name: mattermost_ldap_php volumes: - ${COMPOSE_PROJECT_DIR:-D:/00_test/01}/volumes/oauth:/var/www/html/oauth environment: ldap_host: ldap://ldap:389/ ldap_port: 389 ldap_version: 3 ldap_search_attribute: uid ldap_base_dn: "dc=example,dc=com" ldap_filter: "(objectClass=*)" ldap_bind_dn: "cn=butler,dc=example,dc=com" ldap_bind_pass: "readonly" db_host: "database" db_port: "5432" db_type: "pgsql" db_name: "oauth_db" db_user: "oauth" db_pass: "oauth_secure-pass" depends_on: - database - ldap database: image: postgres:alpine container_name: mattermost_ldap_oauth_db restart: unless-stopped ports: - "5436:5432" volumes: - ${COMPOSE_PROJECT_DIR:-D:/00_test/01}/volumes/oauth_db/init_postgres.sh:/docker-entrypoint-initdb.d/init_postgres.sh - ${COMPOSE_PROJECT_DIR:-D:/00_test/01}/volumes/oauth_db/config_init.sh:/docker-entrypoint-initdb.d/config_init.sh - ${COMPOSE_PROJECT_DIR:-D:/00_test/01}/volumes/oauth_db/data:/var/lib/postgresql/data environment: POSTGRES_USER: postgres POSTGRES_PASSWORD: rootroot POSTGRES_HOST_AUTH_METHOD: trust mattermost: image: mattermost/mattermost-preview container_name: mattermost_ldap_app depends_on: - postgres - ldap - webserver restart: unless-stopped ports: - "8065:8065" extra_hosts: - "dockerhost:127.0.0.1" volumes: - D:/23_Gitlab/dockerCompose/mattermost-ldap/Mattermost-LDAP/Demo/config.json:/mm/mattermost/config/config_docker.json environment: - MM_SQLSETTINGS_DRIVERNAME=postgres - MM_SQLSETTINGS_DATASOURCE=postgres://mmuser:mmuser_password@postgres:5432/mattermost?sslmode=disable&connect_timeout=10 - MM_SERVICESETTINGS_SITEURL=http://localhost:8065 # LDAP配置环境变量 - MM_LDAPSETTINGS_ENABLE=true - MM_LDAPSETTINGS_LDAPSERVER=ldap - MM_LDAPSETTINGS_LDAPPORT=389 - MM_LDAPSETTINGS_CONNECTIONSECURITY= - MM_LDAPSETTINGS_BASEDN=dc=example,dc=com - MM_LDAPSETTINGS_BINDUSERNAME=cn=butler,dc=example,dc=com - MM_LDAPSETTINGS_BINDPASSWORD=readonly - MM_LDAPSETTINGS_USERFILTER=(objectClass=*) - MM_LDAPSETTINGS_FIRSTNAMEATTRIBUTE=givenName - MM_LDAPSETTINGS_LASTNAMETTRIBUTE=sn - MM_LDAPSETTINGS_EMAILATTRIBUTE=mail - MM_LDAPSETTINGS_USERNAMEATTRIBUTE=uid - MM_LDAPSETTINGS_IDATTRIBUTE=uid - MM_LDAPSETTINGS_LOGINIDATTRIBUTE=uid - MM_LDAPSETTINGS_SYNCINTERVAL=60