github.com/yankunsam/loki/v2@v2.6.3-0.20220817130409-389df5235c27/examples/getting-started/docker-compose.yaml (about)

     1  ---
     2  version: "3"
     3  
     4  networks:
     5    loki:
     6  
     7  services:
     8    read:
     9      image: grafana/loki:2.6.1
    10      command: "-config.file=/etc/loki/config.yaml -target=read"
    11      ports:
    12        - 3101:3100
    13        - 7946
    14        - 9095
    15      volumes:
    16        - ./loki-config.yaml:/etc/loki/config.yaml
    17      depends_on:
    18        - minio
    19      networks: &loki-dns
    20        loki:
    21          aliases:
    22            - loki
    23  
    24    write:
    25      image: grafana/loki:2.6.1
    26      command: "-config.file=/etc/loki/config.yaml -target=write"
    27      ports:
    28        - 3102:3100
    29        - 7946
    30        - 9095
    31      volumes:
    32        - ./loki-config.yaml:/etc/loki/config.yaml
    33      depends_on:
    34        - minio
    35      networks:
    36        <<: *loki-dns
    37  
    38    promtail:
    39      image: grafana/promtail:2.6.1
    40      volumes:
    41        - ./promtail-local-config.yaml:/etc/promtail/config.yaml:ro
    42        - /var/run/docker.sock:/var/run/docker.sock
    43      command: -config.file=/etc/promtail/config.yaml
    44      depends_on:
    45        - gateway
    46      networks:
    47        - loki
    48  
    49    minio:
    50      image: minio/minio
    51      entrypoint:
    52        - sh
    53        - -euc
    54        - |
    55          mkdir -p /data/loki-data && \
    56          mkdir -p /data/loki-ruler && \
    57          minio server /data
    58      environment:
    59        - MINIO_ACCESS_KEY=loki
    60        - MINIO_SECRET_KEY=supersecret
    61        - MINIO_PROMETHEUS_AUTH_TYPE=public
    62        - MINIO_UPDATE=off
    63      ports:
    64        - 9000
    65      volumes:
    66        - ./.data/minio:/data
    67      networks:
    68        - loki
    69  
    70    grafana:
    71      image: grafana/grafana:latest
    72      environment:
    73        - GF_PATHS_PROVISIONING=/etc/grafana/provisioning
    74        - GF_AUTH_ANONYMOUS_ENABLED=true
    75        - GF_AUTH_ANONYMOUS_ORG_ROLE=Admin
    76      depends_on:
    77        - gateway
    78      entrypoint:
    79        - sh
    80        - -euc
    81        - |
    82          mkdir -p /etc/grafana/provisioning/datasources
    83          cat <<EOF > /etc/grafana/provisioning/datasources/ds.yaml
    84          apiVersion: 1
    85          datasources:
    86            - name: Loki
    87              type: loki
    88              access: proxy
    89              url: http://gateway:3100
    90              jsonData:
    91                httpHeaderName1: "X-Scope-OrgID"
    92              secureJsonData:
    93                httpHeaderValue1: "tenant1"
    94          EOF
    95          /run.sh
    96      ports:
    97        - "3000:3000"
    98      networks:
    99        - loki
   100  
   101    gateway:
   102      image: nginx:latest
   103      depends_on:
   104        - read
   105        - write
   106      entrypoint:
   107        - sh
   108        - -euc
   109        - |
   110          cat <<EOF > /etc/nginx/nginx.conf
   111          user  nginx;
   112          worker_processes  5;  ## Default: 1
   113  
   114          events {
   115            worker_connections   1000;
   116          }
   117  
   118          http {
   119            resolver 127.0.0.11;
   120  
   121            server {
   122              listen             3100;
   123  
   124              location = / {
   125                return 200 'OK';
   126                auth_basic off;
   127              }
   128  
   129              location = /api/prom/push {
   130                proxy_pass       http://write:3100\$$request_uri;
   131              }
   132  
   133              location = /api/prom/tail {
   134                proxy_pass       http://read:3100\$$request_uri;
   135                proxy_set_header Upgrade \$$http_upgrade;
   136                proxy_set_header Connection "upgrade";
   137              }
   138  
   139              location ~ /api/prom/.* {
   140                proxy_pass       http://read:3100\$$request_uri;
   141              }
   142  
   143              location = /loki/api/v1/push {
   144                proxy_pass       http://write:3100\$$request_uri;
   145              }
   146  
   147              location = /loki/api/v1/tail {
   148                proxy_pass       http://read:3100\$$request_uri;
   149                proxy_set_header Upgrade \$$http_upgrade;
   150                proxy_set_header Connection "upgrade";
   151              }
   152  
   153              location ~ /loki/api/.* {
   154                proxy_pass       http://read:3100\$$request_uri;
   155              }
   156            }
   157          }
   158          EOF
   159          /docker-entrypoint.sh nginx -g "daemon off;"
   160      ports:
   161        - "3100:3100"
   162      networks:
   163        - loki
   164  
   165    flog:
   166      image: mingrammer/flog
   167      command: -f json -d 1s -l
   168      networks:
   169        - loki