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