-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdocker-compose.yml
More file actions
132 lines (123 loc) · 3.31 KB
/
docker-compose.yml
File metadata and controls
132 lines (123 loc) · 3.31 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
# =============================================================================
# GeoTrack Full Stack - Local Development
# Usage: docker compose up
# =============================================================================
services:
postgres:
image: postgis/postgis:16-3.4
container_name: geotrack-postgres
environment:
POSTGRES_DB: geotrack
POSTGRES_USER: geotrack
POSTGRES_PASSWORD: geotrack
ports:
- "5432:5432"
volumes:
- postgres_data:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U geotrack"]
interval: 5s
timeout: 5s
retries: 5
kafka:
image: redpandadata/redpanda:v24.1.1
container_name: geotrack-kafka
command:
- redpanda
- start
- --smp=1
- --memory=512M
- --overprovisioned
- --kafka-addr=PLAINTEXT://0.0.0.0:29092,OUTSIDE://0.0.0.0:9092
- --advertise-kafka-addr=PLAINTEXT://kafka:29092,OUTSIDE://localhost:9092
ports:
- "9092:9092"
- "29092:29092"
healthcheck:
test: ["CMD", "rpk", "cluster", "health"]
interval: 10s
timeout: 5s
retries: 5
redis:
image: redis:7-alpine
container_name: geotrack-redis
ports:
- "6379:6379"
healthcheck:
test: ["CMD", "redis-cli", "ping"]
interval: 5s
timeout: 3s
retries: 5
api:
build:
context: geotrack-api
dockerfile: src/main/docker/Dockerfile.jvm
container_name: geotrack-api
ports:
- "8080:8080"
environment:
QUARKUS_DATASOURCE_JDBC_URL: jdbc:postgresql://postgres:5432/geotrack
QUARKUS_DATASOURCE_USERNAME: geotrack
QUARKUS_DATASOURCE_PASSWORD: geotrack
KAFKA_BOOTSTRAP: kafka:29092
QUARKUS_HTTP_HOST: 0.0.0.0
depends_on:
postgres:
condition: service_healthy
kafka:
condition: service_healthy
processing:
build:
context: geotrack-processing
dockerfile: src/main/docker/Dockerfile.jvm
container_name: geotrack-processing
ports:
- "8081:8081"
environment:
QUARKUS_DATASOURCE_JDBC_URL: jdbc:postgresql://postgres:5432/geotrack
QUARKUS_DATASOURCE_USERNAME: geotrack
QUARKUS_DATASOURCE_PASSWORD: geotrack
KAFKA_BOOTSTRAP: kafka:29092
QUARKUS_HTTP_HOST: 0.0.0.0
QUARKUS_HTTP_PORT: "8081"
depends_on:
postgres:
condition: service_healthy
kafka:
condition: service_healthy
simulator-live:
build:
context: geotrack-simulator
dockerfile: src/main/docker/Dockerfile.jvm
container_name: geotrack-simulator-live
command: ["live"]
environment:
KAFKA_BOOTSTRAP: kafka:29092
OPENSKY_ENABLED: "true"
depends_on:
kafka:
condition: service_healthy
simulator-ships:
build:
context: geotrack-simulator
dockerfile: src/main/docker/Dockerfile.jvm
container_name: geotrack-simulator-ships
command: ["ships"]
environment:
KAFKA_BOOTSTRAP: kafka:29092
AISSTREAM_ENABLED: "true"
AISSTREAM_API_KEY: "${AISSTREAM_API_KEY}"
depends_on:
kafka:
condition: service_healthy
frontend:
build:
context: geotrack-frontend
dockerfile: Dockerfile
container_name: geotrack-frontend
ports:
- "80:80"
depends_on:
- api
volumes:
postgres_data: