Files
no-copy/docker-compose.yaml
T
vladp 997daae639
Test Workflow / test (push) Successful in 4s
save chunks
2025-12-16 03:44:59 +07:00

154 lines
3.5 KiB
YAML

version: '3.9'
services:
db:
image: postgres:17
restart: always
environment:
POSTGRES_DB: no_copy_
POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgres
ports:
- "54320:5432"
volumes:
- pgdata:/var/lib/postgresql/data
container_name: postgres
networks:
app-network:
aliases:
- database
app:
build: .
container_name: app-backend
environment:
FILE_STORAGE_PATH: /data/uploads
MAX_FILE_SIZE: 1073741824
FILE_CHUNK_SIZE: 5242880
POSTGRES_DB: no_copy_
POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgres
POSTGRES_PORT: 5432
POSTGRES_HOST: db
depends_on:
- db
ports:
- "80:8080"
networks:
app-network:
aliases:
- app
- backend
- api
volumes:
- uploads_volume:/data/uploads
grafana:
image: grafana/grafana:10.3.1
container_name: grafana
ports:
- "3000:3000"
depends_on:
prometheus:
condition: service_healthy
loki:
condition: service_healthy
tempo:
condition: service_started
alloy:
condition: service_started
environment:
GF_AUTH_ANONYMOUS_ENABLED: "true"
GF_SECURITY_ADMIN_USER: admin
GF_SECURITY_ADMIN_PASSWORD: admin
GF_METRICS_ENABLED: "true"
volumes:
- ./infrastructure/grafana/provisioning:/etc/grafana/provisioning
- ./infrastructure/grafana/dashboards:/var/lib/grafana/dashboards
healthcheck:
test: [ "CMD", "wget", "--spider", "http://localhost:3000/api/health" ]
interval: 10s
timeout: 5s
retries: 10
networks:
- app-network
prometheus:
image: prom/prometheus:latest
container_name: prometheus
ports:
- "9090:9090"
volumes:
- ./infrastructure/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml
healthcheck:
test: [ "CMD", "wget", "--spider", "http://localhost:9090/-/healthy" ]
interval: 10s
timeout: 5s
retries: 5
networks:
- app-network
loki:
image: grafana/loki:2.9.2
container_name: loki
ports:
- "3100:3100"
volumes:
- ./infrastructure/loki/loki-config.yaml:/etc/loki/loki-config.yaml:ro
healthcheck:
test: [ "CMD", "wget", "--spider", "-q", "http://localhost:3100/ready" ]
interval: 10s
timeout: 5s
retries: 5
networks:
- app-network
tempo:
image: grafana/tempo:2.4.1
container_name: tempo
command: [ "-config.file=/etc/tempo/tempo.yaml" ]
volumes:
- ./infrastructure/tempo/tempo.yaml:/etc/tempo/tempo.yaml
- tempo_data:/var/tempo
ports:
- "3200:3200"
networks:
- app-network
alloy:
image: grafana/alloy:latest
container_name: alloy
user: root
ports:
- "9080:9080"
- "4317:4317"
- "4318:4318"
volumes:
- ./infrastructure/alloy/config.alloy:/etc/alloy/config.alloy:ro
- /var/lib/docker/containers:/var/lib/docker/containers:ro
- /var/run/docker.sock:/var/run/docker.sock
- /var/log:/var/log:ro
environment:
GRAFANA_LOKI_URL: http://loki:3100/loki/api/v1/push
command:
- run
- --server.http.listen-addr=0.0.0.0:9080
- --storage.path=/var/lib/alloy/data
- /etc/alloy/config.alloy
networks:
- app-network
volumes:
pgdata:
artifacts:
tempo_data:
loki_data:
loki_chunks:
loki_index:
loki_rules:
uploads_volume:
networks:
app-network:
external: true
driver: bridge