-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdocker-compose.yml
More file actions
137 lines (127 loc) · 3.1 KB
/
Copy pathdocker-compose.yml
File metadata and controls
137 lines (127 loc) · 3.1 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
version: '3.8'
services:
# PostgreSQL Database
postgres:
image: postgres:15-alpine
container_name: marblepay-postgres
restart: unless-stopped
environment:
POSTGRES_USER: marblepay
POSTGRES_PASSWORD: password
POSTGRES_DB: marblepay_dev
POSTGRES_INITDB_ARGS: "-E UTF8"
ports:
- "5432:5432"
volumes:
- postgres_data:/var/lib/postgresql/data
- ./scripts/init-db.sql:/docker-entrypoint-initdb.d/init.sql
healthcheck:
test: ["CMD-SHELL", "pg_isready -U marblepay"]
interval: 10s
timeout: 5s
retries: 5
networks:
- marblepay-network
# Redis Cache & Queue
redis:
image: redis:7-alpine
container_name: marblepay-redis
restart: unless-stopped
ports:
- "6379:6379"
volumes:
- redis_data:/data
command: redis-server --appendonly yes
healthcheck:
test: ["CMD", "redis-cli", "ping"]
interval: 10s
timeout: 5s
retries: 5
networks:
- marblepay-network
# Elasticsearch (for logs - optional)
elasticsearch:
image: docker.elastic.co/elasticsearch/elasticsearch:8.11.0
container_name: marblepay-elasticsearch
restart: unless-stopped
environment:
- discovery.type=single-node
- xpack.security.enabled=false
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
ports:
- "9200:9200"
volumes:
- elasticsearch_data:/usr/share/elasticsearch/data
networks:
- marblepay-network
profiles:
- with-elk
# Kibana (for log visualization - optional)
kibana:
image: docker.elastic.co/kibana/kibana:8.11.0
container_name: marblepay-kibana
restart: unless-stopped
environment:
ELASTICSEARCH_HOSTS: http://elasticsearch:9200
ports:
- "5601:5601"
depends_on:
- elasticsearch
networks:
- marblepay-network
profiles:
- with-elk
# PgAdmin (database management - optional)
pgadmin:
image: dpage/pgadmin4:latest
container_name: marblepay-pgadmin
restart: unless-stopped
environment:
PGADMIN_DEFAULT_EMAIL: admin@marblepay.io
PGADMIN_DEFAULT_PASSWORD: admin
PGADMIN_CONFIG_SERVER_MODE: 'False'
ports:
- "5050:80"
depends_on:
- postgres
networks:
- marblepay-network
profiles:
- with-tools
# Redis Commander (Redis GUI - optional)
redis-commander:
image: rediscommander/redis-commander:latest
container_name: marblepay-redis-commander
restart: unless-stopped
environment:
REDIS_HOSTS: local:redis:6379
ports:
- "8081:8081"
depends_on:
- redis
networks:
- marblepay-network
profiles:
- with-tools
# Mailhog (Email testing - optional)
mailhog:
image: mailhog/mailhog:latest
container_name: marblepay-mailhog
restart: unless-stopped
ports:
- "1025:1025" # SMTP
- "8025:8025" # Web UI
networks:
- marblepay-network
profiles:
- with-tools
volumes:
postgres_data:
driver: local
redis_data:
driver: local
elasticsearch_data:
driver: local
networks:
marblepay-network:
driver: bridge