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

     1  version: "3.8"
     2  
     3  networks:
     4    loki:
     5  
     6  services:
     7  
     8    # Since the Loki containers are running as user 10001 and the mounted data volume is owned by root,
     9    # Loki would not have permissions to create the directories.
    10    # Therefore the init container changes permissions of the mounted directory.
    11    init:
    12      image: grafana/loki:2.6.1
    13      user: root
    14      entrypoint:
    15        - "chown"
    16        - "10001:10001"
    17        - "/loki"
    18      volumes:
    19        - ./loki:/loki
    20      networks:
    21        - loki
    22  
    23    grafana:
    24      image: grafana/grafana:8.5.9
    25      ports:
    26        - "3000:3000"
    27      environment:
    28        GF_AUTH_ANONYMOUS_ENABLED: "true"
    29        GF_AUTH_DISABLE_LOGIN_FORM: "true"
    30        GF_AUTH_ANONYMOUS_ORG_ROLE: "Admin"
    31      volumes:
    32        - ./config/datasources.yaml:/etc/grafana/provisioning/datasources/datasources.yml
    33        - grafana:/var/lib/grafana
    34      networks:
    35        - loki
    36  
    37    prometheus:
    38      image: prom/prometheus:v2.27.0
    39      ports:
    40        - 9090:9090
    41      volumes:
    42        - ./config/prometheus.yaml:/etc/prometheus/prometheus.yml
    43        - prometheus:/prometheus
    44      command: [ '--log.level=debug', '--config.file=/etc/prometheus/prometheus.yml', '--query.lookback-delta=30s' ]
    45      networks:
    46        - loki
    47  
    48    # for testing purposes only, disable in production
    49    log-generator:
    50      image: mingrammer/flog
    51      command:
    52        - --loop
    53        - --format=json
    54        - --number=10    # number of log lines to generate per second
    55        - --delay=100ms  # delay between log lines
    56        - --output=/var/log/generated-logs.txt
    57        - --overwrite
    58        - --type=log
    59      volumes:
    60        - ./loki/:/var/log/
    61  
    62    promtail:
    63      image: grafana/promtail:2.6.1
    64      volumes:
    65        - ./loki/:/var/log/
    66        - ./config:/etc/promtail/
    67      ports:
    68        - "9080:9080"
    69      command: -config.file=/etc/promtail/promtail.yaml
    70      networks:
    71        - loki
    72  
    73    minio:
    74      image: minio/minio
    75      entrypoint:
    76        - sh
    77        - -euc
    78        - |
    79          mkdir -p /data/loki-data && \
    80          mkdir -p /data/loki-ruler &&
    81          minio server /data
    82      environment:
    83        - MINIO_ACCESS_KEY=loki
    84        - MINIO_SECRET_KEY=supersecret
    85        - MINIO_PROMETHEUS_AUTH_TYPE=public
    86        - MINIO_UPDATE=off
    87      ports:
    88        - "9000:9000"
    89      volumes:
    90        - ./.data/minio:/data
    91      networks:
    92        - loki
    93  
    94    loki-gateway:
    95      image: nginx:1.19
    96      volumes:
    97        - ./config/nginx.conf:/etc/nginx/nginx.conf
    98      ports:
    99        - "8080:80"
   100        - "3100"
   101      networks:
   102        - loki
   103  
   104    loki-frontend:
   105      image: grafana/loki:2.6.1
   106      volumes:
   107          - ./config:/etc/loki/
   108      ports:
   109          - "3100"
   110      command: "-config.file=/etc/loki/loki.yaml -target=query-frontend -frontend.downstream-url=http://loki-read:3100"
   111      networks:
   112        - loki
   113      deploy:
   114        mode: replicated
   115        replicas: 2
   116  
   117    loki-read:
   118      image: grafana/loki:2.6.1
   119      volumes:
   120        - ./config:/etc/loki/
   121      ports:
   122        - "3100"
   123        - "7946"
   124  
   125      # uncomment to use interactive debugging
   126        # - "40000-40002:40000" # # makes the replicas available on ports 40000, 40001, 40002
   127      #cap_add:
   128      #  - SYS_PTRACE
   129      #security_opt:
   130      #  - apparmor=unconfined
   131      command: "-config.file=/etc/loki/loki.yaml -target=read"
   132      networks:
   133        - loki
   134      restart: always
   135      deploy:
   136        mode: replicated
   137        replicas: 3
   138      # only needed for interactive debugging with dlv
   139  
   140    loki-write:
   141      image: grafana/loki:2.6.1
   142      volumes:
   143        - ./config:/etc/loki/
   144      ports:
   145        - "3100"
   146        - "7946"
   147  
   148      # uncomment to use interactive debugging
   149        # - "50000-50002:40000" # makes the replicas available on ports 50000, 50001, 50002
   150      # cap_add:
   151      #   - SYS_PTRACE
   152      # security_opt:
   153      #   - apparmor=unconfined
   154      command: "-config.file=/etc/loki/loki.yaml -target=write"
   155      networks:
   156        - loki
   157      restart: always
   158      deploy:
   159        mode: replicated
   160        replicas: 3
   161  
   162  volumes:
   163    prometheus:
   164    grafana: