-
-
Notifications
You must be signed in to change notification settings - Fork 773
Expand file tree
/
Copy pathdocker-compose-lightweight.yaml
More file actions
136 lines (131 loc) 路 3.82 KB
/
Copy pathdocker-compose-lightweight.yaml
File metadata and controls
136 lines (131 loc) 路 3.82 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
networks:
openstatus:
driver: bridge
name: openstatus
volumes:
libsql-data:
name: openstatus-libsql-data
services:
# External services
libsql:
container_name: openstatus-libsql
image: ghcr.io/tursodatabase/libsql-server:latest
networks:
- openstatus
ports:
- "8080:8080"
- "5001:5001"
volumes:
- libsql-data:/var/lib/sqld
environment:
- SQLD_NODE=primary
healthcheck:
test:
[
"CMD-SHELL",
'perl -e ''use IO::Socket::INET; exit(IO::Socket::INET->new(PeerAddr=>"127.0.0.1:8080",Timeout=>1) ? 0 : 1);''',
]
interval: 10s
timeout: 5s
retries: 5
start_period: 10s
restart: unless-stopped
memswap_limit: 512M
deploy:
resources:
limits:
memory: 512M
reservations:
memory: 256M
# Idempotent: drizzle skips already-applied migrations on every up
db-migrate:
container_name: openstatus-db-migrate
build:
context: .
dockerfile: packages/db/Dockerfile
image: openstatus/db-migrate:latest
# rebuild on every up so a stale image never skips new migrations
pull_policy: build
networks:
- openstatus
env_file:
- .env.docker
environment:
- DATABASE_URL=http://libsql:8080
depends_on:
libsql:
condition: service_healthy
# retries absorb transient DB races; still settles to failure for the gates
restart: on-failure:3
dashboard:
container_name: openstatus-dashboard
build:
context: .
dockerfile: apps/dashboard/Dockerfile
image: openstatus/dashboard:latest
networks:
- openstatus
ports:
- "3000:3000"
env_file:
- .env.docker
environment:
- DATABASE_URL=http://libsql:8080
- PORT=3000
- HOSTNAME=0.0.0.0
- AUTH_TRUST_HOST=true
depends_on:
db-migrate:
condition: service_completed_successfully
libsql:
condition: service_healthy
healthcheck:
test: ["CMD-SHELL", "curl -f http://localhost:3000/ || exit 1"]
interval: 15s
timeout: 10s
retries: 3
start_period: 45s
restart: unless-stopped
memswap_limit: 512M
deploy:
resources:
limits:
memory: 512M
reservations:
memory: 256M
status-page:
container_name: openstatus-status-page
build:
context: .
dockerfile: apps/status-page/Dockerfile
image: openstatus/status-page:latest
networks:
- openstatus
ports:
- "3001:3000"
env_file:
- .env.docker
environment:
- DATABASE_URL=http://libsql:8080
- PORT=3000
- HOSTNAME=0.0.0.0
- AUTH_TRUST_HOST=true
depends_on:
db-migrate:
condition: service_completed_successfully
libsql:
condition: service_healthy
healthcheck:
test: ["CMD-SHELL", "curl -f http://localhost:3000/ || exit 1"]
interval: 15s
timeout: 10s
retries: 3
start_period: 45s
restart: unless-stopped
memswap_limit: 512M
deploy:
resources:
limits:
memory: 512M
reservations:
memory: 256M