142 lines
4.4 KiB
YAML
142 lines
4.4 KiB
YAML
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 |