My Hobby Server for Self-Hosted Applications on Docker
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

175 lines
4.2 KiB

version: '3.8'
services:
loki-redis:
image: bitnami/redis:latest
restart: unless-stopped
container_name: loki-redis
environment:
ALLOW_EMPTY_PASSWORD: "yes"
ports:
- 6379
networks:
- public
logging:
driver: "json-file"
options:
max-size: "1m"
loki-minio:
image: minio/minio:latest
container_name: loki-minio
volumes:
- $DOCKER_VOLUME_PATH/loki/minio/data:/data
env_file: .env
environment:
- MINIO_ROOT_USER=${MINIO_ROOT_USER:-EXAMPLEACCESSKEY}
- MINIO_ROOT_PASSWORD=${MINIO_ROOT_PASSWORD:-EXAMPLEACCESSSECRET}
command: server /data
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"]
interval: 30s
timeout: 20s
retries: 3
restart: unless-stopped
networks:
- public
logging:
driver: "json-file"
options:
max-size: "1m"
loki-consul:
container_name: loki-consul
image: consul:1.9
command: agent -log-level=info -dev -client 0.0.0.0
restart: unless-stopped
volumes:
- $DOCKER_VOLUME_PATH/loki/consul/config:/consul/config
- $DOCKER_VOLUME_PATH/loki/consul/data:/consul/data
networks:
- public
logging:
driver: "json-file"
options:
max-size: "1m"
loki-distributor:
image: grafana/loki:2.2.1
container_name: loki-distributor
restart: unless-stopped
ports:
- 3100:3100
depends_on:
- loki-redis
- loki-consul
- loki-minio
volumes:
- $DOCKER_VOLUME_PATH/loki/configs/loki/consul_config.yaml:/etc/loki/config.yaml
command: -config.file=/etc/loki/config.yaml -target=distributor
networks:
- public
logging:
driver: "json-file"
options:
max-size: "1m"
loki-querier:
image: grafana/loki:2.2.1
container_name: loki-querier
restart: unless-stopped
ports:
- 3100
depends_on:
- loki-redis
- loki-consul
- loki-minio
volumes:
- $DOCKER_VOLUME_PATH/loki/configs/loki/consul_config.yaml:/etc/loki/config.yaml
command: -config.file=/etc/loki/config.yaml -target=querier
networks:
- public
logging:
driver: "json-file"
options:
max-size: "1m"
loki-ingester:
image: grafana/loki:2.2.1
container_name: loki-ingester
restart: unless-stopped
ports:
- 3100
depends_on:
- loki-redis
- loki-consul
- loki-minio
volumes:
- $DOCKER_VOLUME_PATH/loki/configs/loki/consul_config.yaml:/etc/loki/config.yaml
command: -config.file=/etc/loki/config.yaml -target=ingester
networks:
- public
logging:
driver: "json-file"
options:
max-size: "1m"
loki-table-manager:
image: grafana/loki:2.2.1
container_name: loki-table-manager
restart: unless-stopped
ports:
- 3100
depends_on:
- loki-redis
- loki-consul
- loki-minio
volumes:
- $DOCKER_VOLUME_PATH/loki/configs/loki/consul_config.yaml:/etc/loki/config.yaml
command: -config.file=/etc/loki/config.yaml -target=table-manager
networks:
- public
logging:
driver: "json-file"
options:
max-size: "1m"
promtail:
image: grafana/promtail:latest
container_name: promtail
restart: unless-stopped
volumes:
- $DOCKER_VOLUME_PATH/loki/configs/promtail/promtail-config.yaml:/etc/promtail/docker-config.yaml
- /var/log:/var/log
- /var/lib/docker/:/var/lib/docker:ro
command: -config.file=/etc/promtail/docker-config.yaml
depends_on:
- loki-ingester
networks:
- public
logging:
driver: "json-file"
options:
max-size: "1m"
fluent-bit:
image: grafana/fluent-bit-plugin-loki:latest
container_name: fluent-bit
environment:
- LOKI_URL=http://loki-distributor:3100/loki/api/v1/push
volumes:
- $DOCKER_VOLUME_PATH/loki/configs/fluentbit/fluent-bit.conf:/fluent-bit/etc/fluent-bit.conf
ports:
- "24224:24224"
- "24224:24224/udp"
networks:
- public
logging:
driver: "json-file"
options:
max-size: "1m"
networks:
public:
name: public