github.com/mattermost/mattermost-server/server/v8@v8.0.0-20230610055354-a6d1d38b273d/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 - "9001:9001" 35 - "10025:10025" 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:9001 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/server' 105 environment: 106 - "MM_SQLSETTINGS_DRIVERNAME=postgres" 107 - "MM_SQLSETTINGS_DATASOURCE=postgres://mmuser:mostest@postgres/mattermost_test?sslmode=disable\u0026connect_timeout=10" 108 - "MM_NO_DOCKER=true" 109 - "RUN_SERVER_IN_BACKGROUND=false" 110 - "MM_CLUSTERSETTINGS_ENABLE=true" 111 - "MM_CLUSTERSETTINGS_CLUSTERNAME=mm_dev_cluster" 112 networks: 113 - mm-test 114 depends_on: 115 - start_dependencies 116 volumes: 117 - './../:/home/mattermost-server' 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/server' 141 environment: 142 - "MM_SQLSETTINGS_DRIVERNAME=postgres" 143 - "MM_SQLSETTINGS_DATASOURCE=postgres://mmuser:mostest@postgres/mattermost_test?sslmode=disable\u0026connect_timeout=10" 144 - "MM_NO_DOCKER=true" 145 - "RUN_SERVER_IN_BACKGROUND=false" 146 - "MM_CLUSTERSETTINGS_ENABLE=true" 147 - "MM_CLUSTERSETTINGS_CLUSTERNAME=mm_dev_cluster" 148 networks: 149 - mm-test 150 depends_on: 151 - leader 152 volumes: 153 - './../:/home/mattermost-server' 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/server' 177 environment: 178 - "MM_SQLSETTINGS_DRIVERNAME=postgres" 179 - "MM_SQLSETTINGS_DATASOURCE=postgres://mmuser:mostest@postgres/mattermost_test?sslmode=disable\u0026connect_timeout=10" 180 - "MM_NO_DOCKER=true" 181 - "RUN_SERVER_IN_BACKGROUND=false" 182 - "MM_CLUSTERSETTINGS_ENABLE=true" 183 - "MM_CLUSTERSETTINGS_CLUSTERNAME=mm_dev_cluster" 184 networks: 185 - mm-test 186 depends_on: 187 - leader 188 volumes: 189 - './../:/home/mattermost-server' 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