version: "3" services: db: build: db read_only: true restart: unless-stopped volumes: - ./volumes/db/var/lib/postgresql/data:/var/lib/postgresql/data - /etc/localtime:/etc/localtime:ro environment: - POSTGRES_USER=mmuser - POSTGRES_PASSWORD=mmuser_password - POSTGRES_DB=mattermost # uncomment the following to enable backup # - AWS_ACCESS_KEY_ID=XXXX # - AWS_SECRET_ACCESS_KEY=XXXX # - WALE_S3_PREFIX=s3://BUCKET_NAME/PATH # - AWS_REGION=us-east-1 app: build: context: app # uncomment following lines for team edition or change UID/GID args: - edition=team - PUID=1000 - PGID=1000 restart: unless-stopped volumes: - ./volumes/app/mattermost/config:/mattermost/config:rw - ./volumes/app/mattermost/data:/mattermost/data:rw - ./volumes/app/mattermost/logs:/mattermost/logs:rw - ./volumes/app/mattermost/plugins:/mattermost/plugins:rw - ./volumes/app/mattermost/client-plugins:/mattermost/client/plugins:rw - /etc/localtime:/etc/localtime:ro # When you want to use SSO with GitLab, you have to add the cert pki chain of GitLab inside Alpine # to avoid Token request failed: certificate signed by unknown authority (link: https://github.com/mattermost/mattermost-server/issues/13059) # - /pki_chain.pem:/etc/ssl/certs/pki_chain.pem:ro environment: # set same as db credentials and dbname - MM_USERNAME=mmuser - MM_PASSWORD=mmuser_password - MM_DBNAME=mattermost # use the credentials you've set above, in the format: # MM_SQLSETTINGS_DATASOURCE=postgres://${MM_USERNAME}:${MM_PASSWORD}@db:5432/${MM_DBNAME}?sslmode=disable&connect_timeout=10 - MM_SQLSETTINGS_DATASOURCE=postgres://mmuser:mmuser_password@db:5432/mattermost?sslmode=disable&connect_timeout=10 # in case your config is not in default location #- MM_CONFIG=/mattermost/config/config.json labels: traefik.enable: true traefik.docker.network: traefik_web traefik.http.routers.mattermost.entrypoints: websecure traefik.http.routers.mattermost.rule: 'Host(`${MATTERMOST_URL}`)' networks: - default - traefik_web networks: traefik_web: external: true