github.com/mattermost/mattermost-server/v5@v5.39.3/docker-compose.yaml (about)

     1  version: '2.4'
     2  services:
     3    mysql:
     4      container_name: mattermost-mysql
     5      ports:
     6        - "3306:3306"
     7      extends:
     8          file: build/docker-compose.common.yml
     9          service: mysql
    10    mysql-read-replica:
    11      container_name: mattermost-mysql-read-replica
    12      ports:
    13        - "3307:3306"
    14      extends:
    15          file: build/docker-compose.common.yml
    16          service: mysql-read-replica
    17    postgres:
    18      container_name: mattermost-postgres
    19      ports:
    20        - "5432:5432"
    21      extends:
    22          file: build/docker-compose.common.yml
    23          service: postgres
    24    minio:
    25      container_name: mattermost-minio
    26      ports:
    27        - "9000:9000"
    28      extends:
    29          file: build/docker-compose.common.yml
    30          service: minio
    31    inbucket:
    32      container_name: mattermost-inbucket
    33      ports:
    34        - "10025:10025"
    35        - "10080:10080"
    36        - "10110:10110"
    37      extends:
    38          file: build/docker-compose.common.yml
    39          service: inbucket
    40    openldap:
    41      container_name: mattermost-openldap
    42      ports:
    43        - "389:389"
    44        - "636:636"
    45      extends:
    46          file: build/docker-compose.common.yml
    47          service: openldap
    48    elasticsearch:
    49      container_name: mattermost-elasticsearch
    50      ports:
    51        - "9200:9200"
    52        - "9300:9300"
    53      extends:
    54          file: build/docker-compose.common.yml
    55          service: elasticsearch
    56    dejavu:
    57      container_name: mattermost-dejavu
    58      ports:
    59        - "1358:1358"
    60      extends:
    61          file: build/docker-compose.common.yml
    62          service: dejavu
    63    keycloak:
    64      container_name: mattermost-saml
    65      ports:
    66        - "8484:8080"
    67      extends:
    68          file: build/docker-compose.common.yml
    69          service: keycloak
    70    prometheus:
    71      container_name: mattermost-prometheus
    72      ports:
    73        - "9090:9090"
    74      extends:
    75          file: build/docker-compose.common.yml
    76          service: prometheus
    77    grafana:
    78      container_name: mattermost-grafana
    79      ports:
    80        - "3000:3000"
    81      extends:
    82          file: build/docker-compose.common.yml
    83          service: grafana
    84  
    85    start_dependencies:
    86      image: mattermost/mattermost-wait-for-dep:latest
    87      networks:
    88        - mm-test
    89      depends_on:
    90        - mysql
    91        - postgres
    92        - minio
    93        - inbucket
    94        - openldap
    95        - elasticsearch
    96        - prometheus
    97        - grafana
    98      command: postgres:5432 mysql:3306 minio:9000 inbucket:10080 openldap:389 elasticsearch:9200 prometheus:9090 grafana:3000
    99  
   100    leader:
   101      build:
   102        context: .
   103        dockerfile: ./build/Dockerfile.buildenv
   104      working_dir: '/home/mattermost-server'
   105      environment:
   106        - "MM_SQLSETTINGS_DATASOURCE=postgres://mmuser:mostest@postgres/mattermost_test?sslmode=disable\u0026connect_timeout=10"
   107        - "MM_NO_DOCKER=true"
   108        - "RUN_SERVER_IN_BACKGROUND=false"
   109        - "MM_CLUSTERSETTINGS_ENABLE=true"
   110        - "MM_CLUSTERSETTINGS_CLUSTERNAME=mm_dev_cluster"
   111      networks:
   112        - mm-test
   113      depends_on:
   114        - start_dependencies
   115      volumes:
   116        - './:/home/mattermost-server'
   117        - './../mattermost-webapp:/home/mattermost-webapp'
   118        - './../enterprise:/home/enterprise'
   119      restart: on-failure
   120      healthcheck:
   121        test: ["CMD", "curl", "-f", "http://leader:8065/api/v4/system/ping"]
   122        interval: 5s
   123        timeout: 30s
   124        retries: 30
   125        start_period: 5m
   126      user: ${CURRENT_UID}
   127      command: ['make', 'run-server']
   128      expose:
   129        - "8065"
   130        - "8064/tcp"
   131        - "8064/udp"
   132        - "8074/tcp"
   133        - "8074/udp"
   134        - "8075"
   135  
   136    follower:
   137      build:
   138        context: .
   139        dockerfile: ./build/Dockerfile.buildenv
   140      working_dir: '/home/mattermost-server'
   141      environment:
   142        - "MM_SQLSETTINGS_DATASOURCE=postgres://mmuser:mostest@postgres/mattermost_test?sslmode=disable\u0026connect_timeout=10"
   143        - "MM_NO_DOCKER=true"
   144        - "RUN_SERVER_IN_BACKGROUND=false"
   145        - "MM_CLUSTERSETTINGS_ENABLE=true"
   146        - "MM_CLUSTERSETTINGS_CLUSTERNAME=mm_dev_cluster"
   147      networks:
   148        - mm-test
   149      depends_on:
   150        - leader
   151      volumes:
   152        - './:/home/mattermost-server'
   153        - './../mattermost-webapp:/home/mattermost-webapp'
   154        - './../enterprise:/home/enterprise'
   155      healthcheck:
   156        test: ["CMD", "curl", "-f", "http://follower:8065/api/v4/system/ping"]
   157        interval: 5s
   158        timeout: 30s
   159        retries: 30
   160        start_period: 5m
   161      user: ${CURRENT_UID}
   162      command: ['make', 'run-server']
   163      restart: on-failure
   164      expose:
   165        - "8065"
   166        - "8064/tcp"
   167        - "8064/udp"
   168        - "8074/tcp"
   169        - "8074/udp"
   170        - "8075"
   171  
   172    follower2:
   173      build:
   174        context: .
   175        dockerfile: ./build/Dockerfile.buildenv
   176      working_dir: '/home/mattermost-server'
   177      environment:
   178        - "MM_SQLSETTINGS_DATASOURCE=postgres://mmuser:mostest@postgres/mattermost_test?sslmode=disable\u0026connect_timeout=10"
   179        - "MM_NO_DOCKER=true"
   180        - "RUN_SERVER_IN_BACKGROUND=false"
   181        - "MM_CLUSTERSETTINGS_ENABLE=true"
   182        - "MM_CLUSTERSETTINGS_CLUSTERNAME=mm_dev_cluster"
   183      networks:
   184        - mm-test
   185      depends_on:
   186        - leader
   187      volumes:
   188        - './:/home/mattermost-server'
   189        - './../mattermost-webapp:/home/mattermost-webapp'
   190        - './../enterprise:/home/enterprise'
   191      healthcheck:
   192        test: ["CMD", "curl", "-f", "http://follower2:8065/api/v4/system/ping"]
   193        interval: 5s
   194        timeout: 30s
   195        retries: 30
   196        start_period: 5m
   197      user: ${CURRENT_UID}
   198      command: ['make', 'run-server']
   199      restart: on-failure
   200      expose:
   201        - "8065"
   202        - "8064/tcp"
   203        - "8064/udp"
   204        - "8074/tcp"
   205        - "8074/udp"
   206        - "8075"
   207  
   208    haproxy:
   209      image: nginx
   210      networks:
   211        - mm-test
   212      volumes:
   213        - ./build/docker/nginx/default.conf:/etc/nginx/conf.d/default.conf
   214      restart: on-failure
   215      depends_on:
   216        leader:
   217          condition: service_healthy
   218        follower:
   219          condition: service_healthy
   220        follower2:
   221          condition: service_healthy
   222      ports:
   223        - "8065:8065"
   224  
   225  networks:
   226    mm-test:
   227      driver: bridge
   228      ipam:
   229        driver: default
   230        config:
   231          - subnet: 192.168.254.0/24
   232            ip_range: 192.168.254.0/24