-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdocker-compose.yml
More file actions
133 lines (124 loc) · 2.48 KB
/
docker-compose.yml
File metadata and controls
133 lines (124 loc) · 2.48 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
name: rideshare-backend
services:
web-prod:
build: .
ports:
- "8102:8000"
depends_on:
- db
- redis
profiles:
- prod
web-dev:
build: .
env_file:
- .env
develop:
watch:
- action: sync
path: ./src
target: ./app/src
- action: rebuild
path: deno.json
- action: rebuild
path: deno.lock
ports:
- "8000:8000"
depends_on:
- db
- redis
profiles:
- dev
web-staging:
build: .
command: ["deno", "run", "prod"]
env_file:
- .env.staging
ports:
- "8100:8000"
depends_on:
- db-staging
- redis-staging
profiles:
- staging
db-staging:
image: postgres:17.5-bookworm
env_file:
- .env.staging
user: 1001:1001
volumes:
- ./db-data:/var/lib/postgresql/data
restart: always
healthcheck:
test: [ "CMD-SHELL", "pg_isready -d postgres" ]
interval: 30s
timeout: 10s
retries: 3
profiles:
- staging
db:
image: postgres:17.5-bookworm
container_name: db
env_file:
- .env
ports:
- ${PGPORT}:${PGPORT}
volumes:
- ./db-data:/var/lib/postgresql/data
restart: unless-stopped
healthcheck:
test: [ "CMD-SHELL", "pg_isready -d postgres" ]
interval: 30s
timeout: 10s
retries: 3
profiles:
- dev
- prod
redis:
image: redis:8.2.1
healthcheck:
test: ["CMD-SHELL", "redis-cli ping | grep PONG"]
interval: 5s
timeout: 5s
retries: 3
env_file: .env
command: ["redis-server", "--requirepass", "${REDIS_PASSWORD}"]
restart: unless-stopped
ports:
- ${REDIS_PORT}:${REDIS_PORT}
profiles:
- dev
- prod
redis-staging:
image: redis:8.2.1
healthcheck:
test: ["CMD-SHELL", "redis-cli ping | grep PONG"]
interval: 5s
timeout: 5s
retries: 3
env_file: .env.staging
command: ["redis-server", "--requirepass", "${REDIS_PASSWORD}"]
restart: always
ports:
- ${REDIS_PORT}:${REDIS_PORT}
profiles:
- staging
fcm-notifs:
build: ./notifications
env_file: .env
develop:
watch:
- action: sync
path: ./notifications
target: ./app
depends_on:
- redis
profiles:
- dev
fcm-notifs-staging:
build: ./notifications
env_file: .env.staging
depends_on:
- redis-staging
profiles:
- staging