-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdocker-compose.yml
More file actions
134 lines (125 loc) · 3.57 KB
/
Copy pathdocker-compose.yml
File metadata and controls
134 lines (125 loc) · 3.57 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
version: '3.8'
services:
# Database (you can use PostgreSQL or MySQL)
database:
image: postgres:15-alpine
container_name: nexrender-db
environment:
POSTGRES_DB: nexrender
POSTGRES_USER: nexrender
POSTGRES_PASSWORD: nexrender_password
volumes:
- postgres_data:/var/lib/postgresql/data
ports:
- "5432:5432"
healthcheck:
test: ["CMD-SHELL", "pg_isready -U nexrender"]
interval: 10s
timeout: 5s
retries: 5
# Redis for job queue and caching
redis:
image: redis:7-alpine
container_name: nexrender-redis
ports:
- "6379:6379"
volumes:
- redis_data:/data
healthcheck:
test: ["CMD", "redis-cli", "ping"]
interval: 10s
timeout: 5s
retries: 5
# Nexrender Server
nexrender-server:
image: inlife/nexrender-server:latest
container_name: nexrender-server
environment:
NEXRENDER_SERVER_PORT: 3000
NEXRENDER_SERVER_SECRET: your-secret-key-here
NEXRENDER_DATABASE_URL: postgresql://nexrender:nexrender_password@database:5432/nexrender
NEXRENDER_REDIS_URL: redis://redis:6379
ports:
- "3000:3000"
volumes:
- ./nexrender-data:/opt/nexrender/data
- ./nexrender-assets:/opt/nexrender/assets
depends_on:
database:
condition: service_healthy
redis:
condition: service_healthy
restart: unless-stopped
# Nexrender Worker 1
nexrender-worker-1:
image: inlife/nexrender-worker:latest
container_name: nexrender-worker-1
environment:
NEXRENDER_WORKER_SERVER: http://nexrender-server:3000
NEXRENDER_WORKER_SECRET: your-secret-key-here
NEXRENDER_WORKER_CONCURRENT: 2
NEXRENDER_WORKER_LOGS: /opt/nexrender/logs
volumes:
- ./nexrender-data:/opt/nexrender/data
- ./nexrender-assets:/opt/nexrender/assets
- ./nexrender-logs:/opt/nexrender/logs
depends_on:
- nexrender-server
restart: unless-stopped
# Nexrender Worker 2
nexrender-worker-2:
image: inlife/nexrender-worker:latest
container_name: nexrender-worker-2
environment:
NEXRENDER_WORKER_SERVER: http://nexrender-server:3000
NEXRENDER_WORKER_SECRET: your-secret-key-here
NEXRENDER_WORKER_CONCURRENT: 2
NEXRENDER_WORKER_LOGS: /opt/nexrender/logs
volumes:
- ./nexrender-data:/opt/nexrender/data
- ./nexrender-assets:/opt/nexrender/assets
- ./nexrender-logs:/opt/nexrender/logs
depends_on:
- nexrender-server
restart: unless-stopped
# Main Next.js Application
app:
build: .
container_name: nexrender-manager-app
environment:
NODE_ENV: production
PORT: 3001
DATABASE_URL: postgresql://nexrender:nexrender_password@database:5432/nexrender
REDIS_URL: redis://redis:6379
NEXRENDER_SERVER_URL: http://nexrender-server:3000
NEXRENDER_SERVER_SECRET: your-secret-key-here
ports:
- "3001:3001"
volumes:
- ./nexrender-data:/app/nexrender-data
- ./nexrender-assets:/app/nexrender-assets
depends_on:
database:
condition: service_healthy
redis:
condition: service_healthy
nexrender-server:
condition: service_started
restart: unless-stopped
# Monitoring service (replaces the monitor script)
monitor:
build: .
container_name: nexrender-monitor
command: ["node", "scripts/monitor.js"]
environment:
NODE_ENV: production
APP_URL: http://app:3001
depends_on:
- app
restart: unless-stopped
volumes:
postgres_data:
redis_data:
networks:
default:
name: nexrender-network