0918matter/02/docker-compose.yml

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