Files
parr_api/docker-compose.yml
2025-11-21 11:28:24 +10:00

162 lines
4.0 KiB
YAML

version: '3.9'
#API + REDIS + InfluxDB
services:
#API
parr-api:
image: harbor.dvgd.rzd/parr/parr-api:${tag:-latest}
#container_name: parr-api
#restart: always
environment:
- ASPNETCORE_ENVIRONMENT=Production
- TZ=Europe/Moscow
ports:
- 8082:80
#volumes:
#- /var/log/parr-api:/app/log
#- parr_storage_dev:/app/Data
logging:
driver: fluentd
options:
fluentd-address: dvgd-efk-01.dvgd.oao.rzd:24224
fluentd-retry-wait: '10s'
fluentd-max-retries: '30'
fluentd-async: 'true'
fluentd-buffer-limit: '52428800'
tag: parr.api.serilog
networks:
parr-network:
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:80/api/v1/health"]
interval: 30s
timeout: 10s
retries: 3
start_period: 120s
deploy:
replicas: 4
update_config:
parallelism: 1
delay: 5s
order: start-first
failure_action: rollback
rollback_config:
parallelism: 1
order: stop-first
restart_policy:
condition: any
window: 120s
# REDIS STACK
parr-redis:
image: redis/redis-stack:7.2.0-v6
restart: always
ports:
- 6379:6379
volumes:
- parr_redis_data:/data
#- parr_redis_config/redis.conf:/usr/local/etc/redis/redis.conf
environment:
- REDIS_ARGS=--requirepass ParrP@ssPtk202MMdevDvs
deploy:
replicas: 1
networks:
parr-network:
# REDIS TO PROMETHEUS
redis-exporter:
image: oliver006/redis_exporter
ports:
- 9121:9121
restart: unless-stopped
environment:
REDIS_ADDR: "parr-redis:6379"
REDIS_USER: null
REDIS_PASSWORD: ParrP@ssPtk202MMdevDvs
deploy:
replicas: 1
networks:
parr-network:
# #REDIS
# parr-redis:
# image: redis:7.2.3
# restart: always
# ports:
# - 6379:6379
# #command: redis-server /usr/local/etc/redis/redis.conf
# volumes:
# - parr_redis_data:/data
# #- parr_redis_config/redis.conf:/usr/local/etc/redis/redis.conf
# environment:
# - REDIS_PASSWORD=ParrP@ssPtk202MMdevDvs
# - REDIS_PORT=6379
# - REDIS_DATABASES=16
# deploy:
# replicas: 1
# networks:
# parr-network:
# InfuxDB
parr-influxdb:
image: influxdb:2.7.6
restart: always
environment:
- DOCKER_INFLUXDB_INIT_MODE=setup
- DOCKER_INFLUXDB_INIT_USERNAME=parr-administrator
- DOCKER_INFLUXDB_INIT_PASSWORD=P@ssParrAdminMT202!
- DOCKER_INFLUXDB_INIT_ORG=parr
- DOCKER_INFLUXDB_INIT_BUCKET=robots
- DOCKER_INFLUXDB_INIT_RETENTION=30d
ports:
- 8086:8086
volumes:
- parr_influexdb_data:/var/lib/influxdb2
- parr_influexdb_config:/etc/influxdb2
deploy:
replicas: 1
networks:
parr-network:
networks:
parr-network:
driver: overlay
external: true
volumes:
parr_redis_data:
name: parr_redis_data
driver_opts:
type: "nfs"
o: "addr=dvgd-appfs-01.dvgd.oao.rzd,soft,rw,nfsvers=4"
device: ":/nfs/dvgd-swarm-01/parr_redis/data"
# parr_redis_config:
# name: parr_redis_config
# driver_opts:
# type: "nfs"
# o: "addr=dvgd-appfs-01.dvgd.oao.rzd,soft,rw,nfsvers=4"
# device: ":/nfs/dvgd-swarm-01/parr_redis/config"
#parr_storage_dev:
#name: parr_storage_dev
#driver: local
#driver_opts:
#type: cifs
#o: "addr=dvgd-appfs-01,username=parruserdev,password=P@ssDevParr202MM"
#device: //dvgd-appfs-01/parr_storage_dev
parr_influexdb_data:
name: parr_influexdb_data
driver_opts:
type: "nfs"
o: "addr=dvgd-appfs-01.dvgd.oao.rzd,soft,rw,nfsvers=4"
device: ":/nfs/dvgd-swarm-01/parr_influexdb/data"
parr_influexdb_config:
name: parr_influexdb_config
driver_opts:
type: "nfs"
o: "addr=dvgd-appfs-01.dvgd.oao.rzd,soft,rw,nfsvers=4"
device: ":/nfs/dvgd-swarm-01/parr_influexdb/config"
#tag=v1.0.0 docker compose up -d