@@ -4,6 +4,12 @@ services:
|
||||
storage:
|
||||
image: alpine:latest
|
||||
container_name: file-storage
|
||||
deploy:
|
||||
resources:
|
||||
limits:
|
||||
memory: 128M
|
||||
reservations:
|
||||
memory: 64M
|
||||
networks:
|
||||
- app-network
|
||||
volumes:
|
||||
@@ -14,10 +20,20 @@ services:
|
||||
db:
|
||||
image: postgres:17
|
||||
restart: always
|
||||
deploy:
|
||||
resources:
|
||||
limits:
|
||||
cpus: '2.0'
|
||||
memory: 2G
|
||||
reservations:
|
||||
cpus: '1.0'
|
||||
memory: 1G
|
||||
environment:
|
||||
POSTGRES_DB: no_copy_
|
||||
POSTGRES_USER: postgres
|
||||
POSTGRES_PASSWORD: postgres
|
||||
POSTGRES_SHARED_BUFFERS: 512MB
|
||||
POSTGRES_EFFECTIVE_CACHE_SIZE: 1536MB
|
||||
ports:
|
||||
- "54320:5432"
|
||||
volumes:
|
||||
@@ -31,6 +47,14 @@ services:
|
||||
app:
|
||||
build: .
|
||||
container_name: app-backend
|
||||
deploy:
|
||||
resources:
|
||||
limits:
|
||||
cpus: '1.5'
|
||||
memory: 1G
|
||||
reservations:
|
||||
cpus: '0.5'
|
||||
memory: 512M
|
||||
environment:
|
||||
FILE_STORAGE_PATH: /data/uploads
|
||||
MAX_FILE_SIZE: 10737418240
|
||||
@@ -57,6 +81,13 @@ services:
|
||||
grafana:
|
||||
image: grafana/grafana:10.3.1
|
||||
container_name: grafana
|
||||
deploy:
|
||||
resources:
|
||||
limits:
|
||||
cpus: '0.5'
|
||||
memory: 512M
|
||||
reservations:
|
||||
memory: 256M
|
||||
ports:
|
||||
- "3000:3000"
|
||||
depends_on:
|
||||
@@ -73,6 +104,8 @@ services:
|
||||
GF_SECURITY_ADMIN_USER: admin
|
||||
GF_SECURITY_ADMIN_PASSWORD: admin
|
||||
GF_METRICS_ENABLED: "true"
|
||||
GF_DATABASE_MAX_IDLE_CONN: "2"
|
||||
GF_DATABASE_MAX_OPEN_CONN: "10"
|
||||
volumes:
|
||||
- ./infrastructure/grafana/provisioning:/etc/grafana/provisioning
|
||||
- ./infrastructure/grafana/dashboards:/var/lib/grafana/dashboards
|
||||
@@ -87,10 +120,23 @@ services:
|
||||
prometheus:
|
||||
image: prom/prometheus:latest
|
||||
container_name: prometheus
|
||||
deploy: # ← ДОБАВЛЕНО
|
||||
resources:
|
||||
limits:
|
||||
cpus: '0.5'
|
||||
memory: 1G
|
||||
reservations:
|
||||
memory: 512M
|
||||
ports:
|
||||
- "9090:9090"
|
||||
volumes:
|
||||
- ./infrastructure/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml
|
||||
- prometheus_data:/prometheus
|
||||
command:
|
||||
- '--config.file=/etc/prometheus/prometheus.yml'
|
||||
- '--storage.tsdb.path=/prometheus'
|
||||
- '--storage.tsdb.retention.time=15d' # Удерживать 15 дней
|
||||
- '--web.enable-lifecycle'
|
||||
healthcheck:
|
||||
test: [ "CMD", "wget", "--spider", "http://localhost:9090/-/healthy" ]
|
||||
interval: 10s
|
||||
@@ -102,10 +148,20 @@ services:
|
||||
loki:
|
||||
image: grafana/loki:2.9.2
|
||||
container_name: loki
|
||||
deploy: # ← ДОБАВЛЕНО
|
||||
resources:
|
||||
limits:
|
||||
cpus: '1.0'
|
||||
memory: 2G
|
||||
reservations:
|
||||
memory: 1G
|
||||
ports:
|
||||
- "3100:3100"
|
||||
volumes:
|
||||
- ./infrastructure/loki/loki-config.yaml:/etc/loki/loki-config.yaml:ro
|
||||
- loki_data:/loki
|
||||
command:
|
||||
- -config.file=/etc/loki/loki-config.yaml
|
||||
healthcheck:
|
||||
test: [ "CMD", "wget", "--spider", "-q", "http://localhost:3100/ready" ]
|
||||
interval: 10s
|
||||
@@ -117,6 +173,13 @@ services:
|
||||
tempo:
|
||||
image: grafana/tempo:2.4.1
|
||||
container_name: tempo
|
||||
deploy: # ← ДОБАВЛЕНО
|
||||
resources:
|
||||
limits:
|
||||
cpus: '0.5'
|
||||
memory: 512M
|
||||
reservations:
|
||||
memory: 256M
|
||||
command: [ "-config.file=/etc/tempo/tempo.yaml" ]
|
||||
volumes:
|
||||
- ./infrastructure/tempo/tempo.yaml:/etc/tempo/tempo.yaml
|
||||
@@ -129,6 +192,13 @@ services:
|
||||
alloy:
|
||||
image: grafana/alloy:latest
|
||||
container_name: alloy
|
||||
deploy:
|
||||
resources:
|
||||
limits:
|
||||
cpus: '0.5'
|
||||
memory: 256M
|
||||
reservations:
|
||||
memory: 128M
|
||||
user: root
|
||||
ports:
|
||||
- "9080:9080"
|
||||
@@ -158,6 +228,7 @@ volumes:
|
||||
loki_index:
|
||||
loki_rules:
|
||||
uploads_data:
|
||||
prometheus_data:
|
||||
|
||||
networks:
|
||||
app-network:
|
||||
|
||||
Reference in New Issue
Block a user