2025-11-24 21:04:50 +07:00
|
|
|
version: '3.9'
|
2025-11-23 23:25:58 +07:00
|
|
|
|
|
|
|
|
services:
|
2025-11-24 21:04:50 +07:00
|
|
|
db:
|
|
|
|
|
image: postgres:17
|
|
|
|
|
restart: always
|
2025-11-23 23:25:58 +07:00
|
|
|
environment:
|
2025-11-24 22:39:08 +07:00
|
|
|
POSTGRES_DB: no_copy_
|
2025-11-24 21:04:50 +07:00
|
|
|
POSTGRES_USER: postgres
|
|
|
|
|
POSTGRES_PASSWORD: postgres
|
2025-11-23 23:25:58 +07:00
|
|
|
ports:
|
2025-11-24 22:39:08 +07:00
|
|
|
- "54320:5432"
|
2025-11-23 23:25:58 +07:00
|
|
|
volumes:
|
2025-11-24 21:04:50 +07:00
|
|
|
- pgdata:/var/lib/postgresql/data
|
|
|
|
|
container_name: postgres
|
2025-12-03 15:44:30 +07:00
|
|
|
|
2025-11-23 23:25:58 +07:00
|
|
|
|
2025-11-24 21:04:50 +07:00
|
|
|
app:
|
2025-12-01 16:46:44 +07:00
|
|
|
# image: popovtsev/ncp
|
|
|
|
|
build: .
|
2025-11-24 21:04:50 +07:00
|
|
|
container_name: no_copy_app
|
|
|
|
|
environment:
|
2025-11-24 22:39:08 +07:00
|
|
|
POSTGRES_DB: no_copy_
|
2025-11-24 21:04:50 +07:00
|
|
|
POSTGRES_USER: postgres
|
|
|
|
|
POSTGRES_PASSWORD: postgres
|
|
|
|
|
POSTGRES_PORT: 5432
|
2025-11-24 22:39:08 +07:00
|
|
|
POSTGRES_HOST: db
|
2025-11-24 21:04:50 +07:00
|
|
|
depends_on:
|
2025-11-24 22:39:08 +07:00
|
|
|
- db
|
2025-11-23 23:25:58 +07:00
|
|
|
ports:
|
2025-12-03 14:51:14 +07:00
|
|
|
- "81:8080"
|
2025-12-03 15:44:30 +07:00
|
|
|
|
2025-11-23 23:25:58 +07:00
|
|
|
|
2025-11-25 13:31:50 +07:00
|
|
|
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:
|
2025-12-02 15:17:11 +07:00
|
|
|
GF_AUTH_ANONYMOUS_ENABLED: "true"
|
2025-11-25 13:31:50 +07:00
|
|
|
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
|
2025-12-03 15:44:30 +07:00
|
|
|
|
2025-11-25 13:31:50 +07:00
|
|
|
|
|
|
|
|
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
|
2025-12-03 15:44:30 +07:00
|
|
|
|
2025-11-25 13:31:50 +07:00
|
|
|
|
|
|
|
|
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
|
2025-12-03 15:44:30 +07:00
|
|
|
|
2025-11-25 13:31:50 +07:00
|
|
|
|
|
|
|
|
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"
|
2025-12-03 15:44:30 +07:00
|
|
|
|
2025-11-25 13:31:50 +07:00
|
|
|
|
|
|
|
|
alloy:
|
|
|
|
|
image: grafana/alloy:latest
|
|
|
|
|
container_name: alloy
|
|
|
|
|
user: root
|
|
|
|
|
ports:
|
|
|
|
|
- "9080:9080" # HTTP interface
|
|
|
|
|
- "4317:4317" # OTLP gRPC
|
|
|
|
|
- "4318:4318" # OTLP http
|
|
|
|
|
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
|
2025-12-03 15:44:30 +07:00
|
|
|
|
2025-11-25 13:31:50 +07:00
|
|
|
|
2025-11-23 23:25:58 +07:00
|
|
|
volumes:
|
2025-11-25 13:31:50 +07:00
|
|
|
pgdata:
|
|
|
|
|
artifacts:
|
|
|
|
|
tempo_data:
|
|
|
|
|
loki_data:
|
|
|
|
|
loki_chunks:
|
|
|
|
|
loki_index:
|
2025-12-03 15:44:30 +07:00
|
|
|
loki_rules:
|