github.com/muhammadn/cortex@v1.9.1-0.20220510110439-46bb7000d03d/development/tsdb-blocks-storage-s3-gossip/docker-compose.yml (about) 1 version: '3.4' 2 services: 3 4 consul: 5 image: consul 6 command: [ "agent", "-dev" ,"-client=0.0.0.0", "-log-level=info" ] 7 ports: 8 - 8500:8500 9 10 minio: 11 image: minio/minio 12 command: [ "server", "/data" ] 13 environment: 14 - MINIO_ACCESS_KEY=cortex 15 - MINIO_SECRET_KEY=supersecret 16 ports: 17 - 9000:9000 18 volumes: 19 - .data-minio:/data:delegated 20 21 memcached: 22 image: memcached:1.6 23 24 prometheus: 25 image: prom/prometheus:v2.16.0 26 command: ["--config.file=/etc/prometheus/prometheus.yaml"] 27 volumes: 28 - ./config:/etc/prometheus 29 ports: 30 - 9090:9090 31 32 jaeger: 33 image: jaegertracing/all-in-one 34 ports: 35 - 16686:16686 36 - "14268" 37 38 # Scrape the metrics also with the Grafana agent (useful to test metadata ingestion 39 # until metadata remote write is not supported by Prometheus). 40 grafana-agent: 41 image: grafana/agent:v0.2.0 42 command: ["-config.file=/etc/agent-config/grafana-agent.yaml", "-prometheus.wal-directory=/tmp"] 43 volumes: 44 - ./config:/etc/agent-config 45 ports: 46 - 9091:9091 47 48 distributor: 49 build: 50 context: . 51 dockerfile: dev.dockerfile 52 image: cortex 53 command: ["sh", "-c", "sleep 3 && exec ./dlv exec ./cortex --listen=:18001 --headless=true --api-version=2 --accept-multiclient --continue -- -config.file=./config/cortex.yaml -target=distributor -server.http-listen-port=8001 -server.grpc-listen-port=9001 -memberlist.nodename=distributor -memberlist.bind-port=10001 -log.level=debug"] 54 depends_on: 55 - consul 56 - minio 57 environment: 58 - JAEGER_AGENT_HOST=jaeger 59 - JAEGER_AGENT_PORT=6831 60 - JAEGER_TAGS=app=distributor 61 - JAEGER_SAMPLER_TYPE=const 62 - JAEGER_SAMPLER_PARAM=1 63 ports: 64 - 8001:8001 65 - 18001:18001 66 volumes: 67 - ./config:/cortex/config 68 69 ingester-1: 70 build: 71 context: . 72 dockerfile: dev.dockerfile 73 image: cortex 74 command: ["sh", "-c", "sleep 3 && exec ./dlv exec ./cortex --listen=:18002 --headless=true --api-version=2 --accept-multiclient --continue -- -config.file=./config/cortex.yaml -target=ingester -server.http-listen-port=8002 -server.grpc-listen-port=9002 -memberlist.nodename=ingester-1 -memberlist.bind-port=10002"] 75 depends_on: 76 - consul 77 - minio 78 environment: 79 - JAEGER_AGENT_HOST=jaeger 80 - JAEGER_AGENT_PORT=6831 81 - JAEGER_TAGS=app=ingester-1 82 - JAEGER_SAMPLER_TYPE=const 83 - JAEGER_SAMPLER_PARAM=1 84 ports: 85 - 8002:8002 86 - 18002:18002 87 volumes: 88 - ./config:/cortex/config 89 - .data-ingester-1:/tmp/cortex-tsdb-ingester:delegated 90 91 ingester-2: 92 build: 93 context: . 94 dockerfile: dev.dockerfile 95 image: cortex 96 command: ["sh", "-c", "sleep 3 && exec ./dlv exec ./cortex --listen=:18003 --headless=true --api-version=2 --accept-multiclient --continue -- -config.file=./config/cortex.yaml -target=ingester -server.http-listen-port=8003 -server.grpc-listen-port=9003 -memberlist.nodename=ingester-2 -memberlist.bind-port=10003"] 97 depends_on: 98 - consul 99 - minio 100 environment: 101 - JAEGER_AGENT_HOST=jaeger 102 - JAEGER_AGENT_PORT=6831 103 - JAEGER_TAGS=app=ingester-2 104 - JAEGER_SAMPLER_TYPE=const 105 - JAEGER_SAMPLER_PARAM=1 106 ports: 107 - 8003:8003 108 - 18003:18003 109 volumes: 110 - ./config:/cortex/config 111 - .data-ingester-2:/tmp/cortex-tsdb-ingester:delegated 112 113 querier: 114 build: 115 context: . 116 dockerfile: dev.dockerfile 117 image: cortex 118 command: ["sh", "-c", "sleep 3 && exec ./dlv exec ./cortex --listen=:18004 --headless=true --api-version=2 --accept-multiclient --continue -- -config.file=./config/cortex.yaml -target=querier -server.http-listen-port=8004 -server.grpc-listen-port=9004 -memberlist.nodename=querier -memberlist.bind-port=10004"] 119 depends_on: 120 - consul 121 - minio 122 environment: 123 - JAEGER_AGENT_HOST=jaeger 124 - JAEGER_AGENT_PORT=6831 125 - JAEGER_TAGS=app=querier 126 - JAEGER_SAMPLER_TYPE=const 127 - JAEGER_SAMPLER_PARAM=1 128 ports: 129 - 8004:8004 130 - 18004:18004 131 volumes: 132 - ./config:/cortex/config 133 134 store-gateway-1: 135 build: 136 context: . 137 dockerfile: dev.dockerfile 138 image: cortex 139 command: ["sh", "-c", "sleep 3 && exec ./dlv exec ./cortex --listen=:18008 --headless=true --api-version=2 --accept-multiclient --continue -- -config.file=./config/cortex.yaml -target=store-gateway -server.http-listen-port=8008 -server.grpc-listen-port=9008 -memberlist.nodename=store-gateway-1 -memberlist.bind-port=10008"] 140 depends_on: 141 - consul 142 - minio 143 environment: 144 - JAEGER_AGENT_HOST=jaeger 145 - JAEGER_AGENT_PORT=6831 146 - JAEGER_TAGS=app=store-gateway-1 147 - JAEGER_SAMPLER_TYPE=const 148 - JAEGER_SAMPLER_PARAM=1 149 ports: 150 - 8008:8008 151 - 18008:18008 152 volumes: 153 - ./config:/cortex/config 154 155 store-gateway-2: 156 build: 157 context: . 158 dockerfile: dev.dockerfile 159 image: cortex 160 command: ["sh", "-c", "sleep 3 && exec ./dlv exec ./cortex --listen=:18009 --headless=true --api-version=2 --accept-multiclient --continue -- -config.file=./config/cortex.yaml -target=store-gateway -server.http-listen-port=8009 -server.grpc-listen-port=9009 -memberlist.nodename=store-gateway-2 -memberlist.bind-port=10009"] 161 depends_on: 162 - consul 163 - minio 164 environment: 165 - JAEGER_AGENT_HOST=jaeger 166 - JAEGER_AGENT_PORT=6831 167 - JAEGER_TAGS=app=store-gateway-2 168 - JAEGER_SAMPLER_TYPE=const 169 - JAEGER_SAMPLER_PARAM=1 170 ports: 171 - 8009:8009 172 - 18009:18009 173 volumes: 174 - ./config:/cortex/config 175 176 compactor: 177 build: 178 context: . 179 dockerfile: dev.dockerfile 180 image: cortex 181 command: ["sh", "-c", "sleep 3 && exec ./dlv exec ./cortex --listen=:18006 --headless=true --api-version=2 --accept-multiclient --continue -- -config.file=./config/cortex.yaml -target=compactor -server.http-listen-port=8006 -server.grpc-listen-port=9006 -memberlist.nodename=compactor -memberlist.bind-port=10006"] 182 depends_on: 183 - consul 184 - minio 185 environment: 186 - JAEGER_AGENT_HOST=jaeger 187 - JAEGER_AGENT_PORT=6831 188 - JAEGER_TAGS=app=compactor 189 - JAEGER_SAMPLER_TYPE=const 190 - JAEGER_SAMPLER_PARAM=1 191 ports: 192 - 8006:8006 193 - 18006:18006 194 volumes: 195 - ./config:/cortex/config 196 197 query-frontend: 198 build: 199 context: . 200 dockerfile: dev.dockerfile 201 image: cortex 202 command: ["sh", "-c", "sleep 3 && exec ./dlv exec ./cortex --listen=:18007 --headless=true --api-version=2 --accept-multiclient --continue -- -config.file=./config/cortex.yaml -target=query-frontend -server.http-listen-port=8007 -server.grpc-listen-port=9007 -store.max-query-length=8760h"] 203 depends_on: 204 - consul 205 - minio 206 environment: 207 - JAEGER_AGENT_HOST=jaeger 208 - JAEGER_AGENT_PORT=6831 209 - JAEGER_TAGS=app=query-frontend 210 - JAEGER_SAMPLER_TYPE=const 211 - JAEGER_SAMPLER_PARAM=1 212 ports: 213 - 8007:8007 214 - 18007:18007 215 volumes: 216 - ./config:/cortex/config 217 218 alertmanager: 219 build: 220 context: . 221 dockerfile: dev.dockerfile 222 image: cortex 223 command: ["sh", "-c", "sleep 3 && exec ./dlv exec ./cortex --listen=:18010 --headless=true --api-version=2 --accept-multiclient --continue -- -config.file=./config/cortex.yaml -target=alertmanager -server.http-listen-port=8010 -server.grpc-listen-port=9010 -alertmanager.web.external-url=http://localhost:8010/alertmanager"] 224 depends_on: 225 - consul 226 - minio 227 ports: 228 - 8010:8010 229 - 18010:18010 230 volumes: 231 - ./config:/cortex/config 232 233 ruler-1: 234 build: 235 context: . 236 dockerfile: dev.dockerfile 237 image: cortex 238 command: ["sh", "-c", "sleep 3 && exec ./dlv exec ./cortex --listen=:18021 --headless=true --api-version=2 --accept-multiclient --continue -- -config.file=./config/cortex.yaml -target=ruler -server.http-listen-port=8021 -server.grpc-listen-port=9021 -memberlist.nodename=ruler-1 -memberlist.bind-port=10021"] 239 depends_on: 240 - consul 241 - minio 242 environment: 243 - JAEGER_AGENT_HOST=jaeger 244 - JAEGER_AGENT_PORT=6831 245 - JAEGER_TAGS=app=ruler-1 246 - JAEGER_SAMPLER_TYPE=const 247 - JAEGER_SAMPLER_PARAM=1 248 ports: 249 - 8021:8021 250 - 18021:18021 251 volumes: 252 - ./config:/cortex/config 253 254 ruler-2: 255 build: 256 context: . 257 dockerfile: dev.dockerfile 258 image: cortex 259 command: ["sh", "-c", "sleep 3 && exec ./dlv exec ./cortex --listen=:18022 --headless=true --api-version=2 --accept-multiclient --continue -- -config.file=./config/cortex.yaml -target=ruler -server.http-listen-port=8022 -server.grpc-listen-port=9022 -memberlist.nodename=ruler-2 -memberlist.bind-port=10022"] 260 depends_on: 261 - consul 262 - minio 263 environment: 264 - JAEGER_AGENT_HOST=jaeger 265 - JAEGER_AGENT_PORT=6831 266 - JAEGER_TAGS=app=ruler-2 267 - JAEGER_SAMPLER_TYPE=const 268 - JAEGER_SAMPLER_PARAM=1 269 ports: 270 - 8022:8022 271 - 18022:18022 272 volumes: 273 - ./config:/cortex/config 274 275 query-scheduler: 276 build: 277 context: . 278 dockerfile: dev.dockerfile 279 image: cortex 280 command: ["sh", "-c", "sleep 3 && exec ./dlv exec ./cortex --listen=:18011 --headless=true --api-version=2 --accept-multiclient --continue -- -config.file=./config/cortex.yaml -target=query-scheduler -server.http-listen-port=8011 -server.grpc-listen-port=9011 -store.max-query-length=8760h -log.level=debug"] 281 depends_on: 282 - consul 283 - minio 284 environment: 285 - JAEGER_AGENT_HOST=jaeger 286 - JAEGER_AGENT_PORT=6831 287 - JAEGER_TAGS=app=query-scheduler 288 - JAEGER_SAMPLER_TYPE=const 289 - JAEGER_SAMPLER_PARAM=1 290 ports: 291 - 8011:8011 292 - 18011:18011 293 volumes: 294 - ./config:/cortex/config 295 296 # This frontend uses query-scheduler, activated by `-frontend.scheduler-address` option. 297 query-frontend-with-scheduler: 298 build: 299 context: . 300 dockerfile: dev.dockerfile 301 image: cortex 302 command: ["sh", "-c", "sleep 3 && exec ./dlv exec ./cortex --listen=:18012 --headless=true --api-version=2 --accept-multiclient --continue -- -config.file=./config/cortex.yaml -target=query-frontend -server.http-listen-port=8012 -server.grpc-listen-port=9012 -store.max-query-length=8760h -frontend.scheduler-address=query-scheduler:9011 -log.level=debug"] 303 depends_on: 304 - consul 305 - minio 306 environment: 307 - JAEGER_AGENT_HOST=jaeger 308 - JAEGER_AGENT_PORT=6831 309 - JAEGER_TAGS=app=query-frontend2 310 - JAEGER_SAMPLER_TYPE=const 311 - JAEGER_SAMPLER_PARAM=1 312 ports: 313 - 8012:8012 314 - 18012:18012 315 volumes: 316 - ./config:/cortex/config 317 318 # This querier is connecting to query-scheduler, instead of query-frontend. This is achieved by setting -querier.scheduler-address="..." 319 querier-with-scheduler: 320 build: 321 context: . 322 dockerfile: dev.dockerfile 323 image: cortex 324 command: ["sh", "-c", "sleep 3 && exec ./dlv exec ./cortex --listen=:18013 --headless=true --api-version=2 --accept-multiclient --continue -- -config.file=./config/cortex.yaml -target=querier -server.http-listen-port=8013 -server.grpc-listen-port=9013 -querier.scheduler-address=query-scheduler:9011 -querier.frontend-address= -log.level=debug -memberlist.nodename=querier-with-scheduler -memberlist.bind-port=10013"] 325 depends_on: 326 - consul 327 - minio 328 environment: 329 - JAEGER_AGENT_HOST=jaeger 330 - JAEGER_AGENT_PORT=6831 331 - JAEGER_TAGS=app=querier-scheduler 332 - JAEGER_SAMPLER_TYPE=const 333 - JAEGER_SAMPLER_PARAM=1 334 ports: 335 - 8013:8013 336 - 18013:18013 337 volumes: 338 - ./config:/cortex/config