Skip to content

Instantly share code, notes, and snippets.

@lfache
Created June 25, 2020 13:42
Show Gist options
  • Save lfache/a02c01dde1e55345f4583cfce724cf1f to your computer and use it in GitHub Desktop.
Save lfache/a02c01dde1e55345f4583cfce724cf1f to your computer and use it in GitHub Desktop.

Revisions

  1. lfache created this gist Jun 25, 2020.
    62 changes: 62 additions & 0 deletions docker-compose.yml
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,62 @@
    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)
    # - <path_to_your_gitlab_pki>/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