-
Notifications
You must be signed in to change notification settings - Fork 92
Expand file tree
/
Copy pathdocker-compose.yml
More file actions
143 lines (134 loc) · 3.06 KB
/
docker-compose.yml
File metadata and controls
143 lines (134 loc) · 3.06 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
services:
# MariaDB Service
ogamex-db:
image: mariadb:11.3.2-jammy
restart: unless-stopped
tty: true
volumes:
- ogame-dbdata:/var/lib/mysql
- ./mysql/my.cnf:/etc/mysql/my.cnf
ports:
- "${DB_EXTERNAL_PORT:-3306}:3306"
environment:
MARIADB_DATABASE: laravel
MARIADB_ROOT_PASSWORD: toor
SERVICE_TAGS: dev
SERVICE_NAME: mysql
networks:
app-network:
aliases:
- ogame-db
# PHP Service
ogamex-app:
volumes:
- ./:/var/www
- ./php/local.ini:/usr/local/etc/php/conf.d/local.ini
build:
context: .
dockerfile: Dockerfile
args:
OPCACHE_ENABLE: "0" # Disable opcache for development
USE_USER: ${USE_USER_ARG:-yes} # Defaults to "yes". Set to "no" for GitHub Actions.
restart: unless-stopped
tty: true
environment:
CONTAINER_ROLE: app
SERVICE_NAME: app
SERVICE_TAGS: dev
working_dir: /var/www
healthcheck:
test: ["CMD-SHELL", "curl -f http://localhost:9000 || [ $? -eq 56 ]"]
interval: 10s
timeout: 6s
retries: 60
networks:
- app-network
depends_on:
- ogamex-db
# Scheduler
ogamex-scheduler:
build:
context: .
dockerfile: Dockerfile
restart: unless-stopped
volumes:
- ./:/var/www
- ./php/local.ini:/usr/local/etc/php/conf.d/local.ini
environment:
CONTAINER_ROLE: scheduler
networks:
- app-network
depends_on:
ogamex-app:
condition: service_healthy
# Queue
ogamex-queue-worker:
build:
context: .
dockerfile: Dockerfile
restart: unless-stopped
volumes:
- ./:/var/www
- ./php/local.ini:/usr/local/etc/php/conf.d/local.ini
environment:
CONTAINER_ROLE: queue
networks:
- app-network
depends_on:
ogamex-app:
condition: service_healthy
# Nginx Service
ogamex-webserver:
image: nginx:alpine
restart: unless-stopped
tty: true
volumes:
- ./:/var/www:cached
- ./nginx/conf.d/:/etc/nginx/conf.d/
- ./nginx/ssl/:/etc/nginx/ssl/
ports:
- "${HTTP_PORT:-80}:80"
- "${HTTPS_PORT:-443}:443"
networks:
- app-network
depends_on:
ogamex-app:
condition: service_healthy
# Reverb WebSocket Server
ogamex-reverb:
build:
context: .
dockerfile: Dockerfile
restart: unless-stopped
volumes:
- ./:/var/www
- ./php/local.ini:/usr/local/etc/php/conf.d/local.ini
environment:
CONTAINER_ROLE: reverb
ports:
- "${REVERB_SERVER_PORT:-8090}:${REVERB_SERVER_PORT:-8090}"
networks:
- app-network
depends_on:
ogamex-app:
condition: service_healthy
# PhpMyAdmin
ogamex-phpmyadmin:
image: phpmyadmin
restart: always
ports:
- "${PHPMYADMIN_PORT:-8080}:80"
environment:
- PMA_ARBITRARY=1
- PMA_HOST=ogame-db
- UPLOAD_LIMIT=1G
networks:
- app-network
# Docker Networks
networks:
app-network:
driver: bridge
# Volumes
volumes:
ogame-dbdata:
driver: local