78 lines
2.0 KiB
YAML
78 lines
2.0 KiB
YAML
version: '3.8'
|
|
|
|
services:
|
|
timescaledb:
|
|
image: timescale/timescaledb:latest-pg15
|
|
container_name: market_data_timescaledb
|
|
restart: unless-stopped
|
|
environment:
|
|
POSTGRES_DB: market_data
|
|
POSTGRES_USER: market_user
|
|
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-market_data_secure_pass_2024}
|
|
POSTGRES_INITDB_ARGS: "--encoding=UTF-8 --lc-collate=C --lc-ctype=C"
|
|
# TimescaleDB specific settings
|
|
TIMESCALEDB_TELEMETRY: 'off'
|
|
ports:
|
|
- "5432:5432"
|
|
volumes:
|
|
- timescale_data:/var/lib/postgresql/data
|
|
- ./init-scripts:/docker-entrypoint-initdb.d
|
|
command: >
|
|
postgres
|
|
-c shared_preload_libraries=timescaledb
|
|
-c max_connections=200
|
|
-c shared_buffers=256MB
|
|
-c effective_cache_size=1GB
|
|
-c maintenance_work_mem=64MB
|
|
-c checkpoint_completion_target=0.9
|
|
-c wal_buffers=16MB
|
|
-c default_statistics_target=100
|
|
-c random_page_cost=1.1
|
|
-c effective_io_concurrency=200
|
|
-c work_mem=4MB
|
|
-c min_wal_size=1GB
|
|
-c max_wal_size=4GB
|
|
-c max_worker_processes=8
|
|
-c max_parallel_workers_per_gather=4
|
|
-c max_parallel_workers=8
|
|
-c max_parallel_maintenance_workers=4
|
|
healthcheck:
|
|
test: ["CMD-SHELL", "pg_isready -U market_user -d market_data"]
|
|
interval: 30s
|
|
timeout: 10s
|
|
retries: 3
|
|
start_period: 60s
|
|
networks:
|
|
- market_data_network
|
|
|
|
redis:
|
|
image: redis:7-alpine
|
|
container_name: market_data_redis
|
|
restart: unless-stopped
|
|
ports:
|
|
- "6379:6379"
|
|
volumes:
|
|
- redis_data:/data
|
|
- ./redis.conf:/usr/local/etc/redis/redis.conf
|
|
command: redis-server /usr/local/etc/redis/redis.conf
|
|
healthcheck:
|
|
test: ["CMD", "redis-cli", "ping"]
|
|
interval: 30s
|
|
timeout: 10s
|
|
retries: 3
|
|
start_period: 30s
|
|
networks:
|
|
- market_data_network
|
|
|
|
volumes:
|
|
timescale_data:
|
|
driver: local
|
|
redis_data:
|
|
driver: local
|
|
|
|
networks:
|
|
market_data_network:
|
|
driver: bridge
|
|
ipam:
|
|
config:
|
|
- subnet: 172.20.0.0/16 |