-
Notifications
You must be signed in to change notification settings - Fork 139
Expand file tree
/
Copy pathcompose.yml
More file actions
151 lines (142 loc) · 4.12 KB
/
compose.yml
File metadata and controls
151 lines (142 loc) · 4.12 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
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
services:
db:
image: mariadb:11.8
container_name: airavata-db
restart: unless-stopped
command: --lower-case-table-names=1
environment:
MYSQL_ROOT_PASSWORD: rootpass
MYSQL_DATABASE: airavata
MYSQL_USER: airavata
MYSQL_PASSWORD: 123456
volumes:
- db_data:/var/lib/mysql
- ./airavata-server/src/main/resources/db/migration/airavata/V1__Baseline_schema.sql:/docker-entrypoint-initdb.d/01-schema.sql:ro
ports:
- "13306:3306"
healthcheck:
test: ["CMD", "healthcheck.sh", "--connect", "--innodb_initialized"]
interval: 10s
timeout: 5s
retries: 5
start_period: 30s
rabbitmq:
image: rabbitmq:4.0-management
container_name: airavata-rabbitmq
restart: unless-stopped
environment:
RABBITMQ_DEFAULT_USER: airavata
RABBITMQ_DEFAULT_PASS: airavata
volumes:
- rabbitmq_data:/var/lib/rabbitmq
ports:
- "5672:5672"
- "15672:15672"
healthcheck:
test: ["CMD", "rabbitmq-diagnostics", "-q", "ping"]
interval: 10s
timeout: 5s
retries: 5
start_period: 20s
zookeeper:
image: zookeeper:3.9
container_name: airavata-zookeeper
restart: unless-stopped
volumes:
- zk_data:/data
- zk_logs:/datalog
ports:
- "2181:2181"
healthcheck:
test: ["CMD-SHELL", "curl -sf http://localhost:8080/commands/ruok || exit 1"]
interval: 10s
timeout: 5s
retries: 5
start_period: 10s
kafka:
image: apache/kafka:3.9.0
container_name: airavata-kafka
restart: unless-stopped
environment:
KAFKA_NODE_ID: 1
KAFKA_PROCESS_ROLES: broker,controller
KAFKA_LISTENERS: PLAINTEXT://:9092,CONTROLLER://:9093
KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://localhost:9092
KAFKA_CONTROLLER_LISTENER_NAMES: CONTROLLER
KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT
KAFKA_CONTROLLER_QUORUM_VOTERS: 1@kafka:9093
KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
CLUSTER_ID: airavata-kafka-cluster-id-01
volumes:
- kafka_data:/var/lib/kafka/data
ports:
- "9092:9092"
healthcheck:
test: ["CMD-SHELL", "/opt/kafka/bin/kafka-broker-api-versions.sh --bootstrap-server localhost:9092 > /dev/null 2>&1"]
interval: 10s
timeout: 10s
retries: 5
start_period: 30s
keycloak:
image: keycloak/keycloak:26.1
container_name: airavata-keycloak
restart: unless-stopped
environment:
KEYCLOAK_ADMIN: admin
KEYCLOAK_ADMIN_PASSWORD: admin
volumes:
- ./conf/keycloak/realm-default.json:/opt/keycloak/data/import/realm-default.json:ro
- ./conf/keycloak/themes/airavata:/opt/keycloak/themes/airavata:ro
command:
- start-dev
- --import-realm
- --db=dev-mem
- --http-port=18080
- --proxy-headers=xforwarded
- --hostname-strict=false
- --health-enabled=true
- --metrics-enabled=true
- --log-level=INFO
- --spi-theme-default=airavata
ports:
- "18080:18080"
healthcheck:
test: ["CMD-SHELL", "exec 3<>/dev/tcp/localhost/9000 && echo -e 'GET /health/ready HTTP/1.1\\r\\nHost: localhost\\r\\nConnection: close\\r\\n\\r\\n' >&3 && cat <&3 | grep -q '200 OK'"]
interval: 10s
timeout: 5s
retries: 10
start_period: 60s
sftp:
image: atmoz/sftp:latest
container_name: airavata-sftp
restart: unless-stopped
volumes:
- ./conf/sftp/id_rsa.pub:/home/airavata/.ssh/keys/id_rsa.pub:ro
- sftp_data:/home/airavata/storage
ports:
- "2222:22"
command: "airavata::1000"
healthcheck:
test: ["CMD-SHELL", "cat /proc/1/cmdline | tr '\\0' ' ' | grep -q sshd || exit 1"]
interval: 10s
timeout: 5s
retries: 5
start_period: 10s
# Dev tools (start with: docker compose --profile tools up -d)
adminer:
profiles: [tools]
image: adminer:4
container_name: airavata-adminer
restart: unless-stopped
ports:
- "18088:8080"
depends_on:
db:
condition: service_healthy
volumes:
db_data:
rabbitmq_data:
zk_data:
zk_logs:
kafka_data:
sftp_data: