forked from ppy/osu-web
-
Notifications
You must be signed in to change notification settings - Fork 0
/
docker-compose.yml
110 lines (96 loc) · 2.44 KB
/
docker-compose.yml
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
version: '3.4'
x-env: &x-env
BROADCAST_DRIVER: redis
CACHE_DRIVER: redis
DB_HOST: db
ES_HOST: elasticsearch:9200
ES_SCORES_HOST: elasticsearch:9200
GITHUB_TOKEN: "${GITHUB_TOKEN}"
NOTIFICATION_REDIS_HOST: redis
REDIS_HOST: redis
SESSION_DRIVER: redis
x-web: &x-web
build:
context: ./docker/development
dockerfile: ../../Dockerfile.development
volumes:
- .:/app
environment:
<<: *x-env
services:
php:
<<: *x-web
shm_size: '2gb' # for chromium
# For running sandboxed chromium (default) with minimal privileges.
# reference: https://ndportmann.com/chrome-in-docker/
security_opt:
- seccomp=docker/development/chromium-seccomp.json
assets:
<<: *x-web
command: ['watch']
job:
<<: *x-web
command: ['job']
schedule:
<<: *x-web
command: ['schedule']
migrator:
<<: *x-web
command: ['migrate']
notification-server:
image: pppy/osu-notification-server
depends_on:
- redis
- db
volumes:
- .env:/app/.env
- ./storage/oauth-public.key:/app/oauth-public.key
environment:
<<: *x-env
notification-server-dusk:
image: pppy/osu-notification-server
depends_on:
- redis
- db
volumes:
- .env.dusk.local:/app/.env
- ./storage/oauth-public.key:/app/oauth-public.key
environment:
<<: *x-env
db:
image: mysql:8.0
volumes:
- database:/var/lib/mysql
- ./bin/db_setup.sh:/docker-entrypoint-initdb.d/db_setup.sh
- ./docker/development/db_user.sql:/docker-entrypoint-initdb.d/db_user.sql
environment:
<<: *x-env
MYSQL_ALLOW_EMPTY_PASSWORD: "yes"
MYSQL_ONETIME_PASSWORD: "yes"
ports:
- "${MYSQL_EXTERNAL_PORT:-3306}:3306"
command: --default-authentication-plugin=mysql_native_password
redis:
image: redis:latest
elasticsearch:
# Version must be kept up to date with library defined in: composer.json
image: docker.elastic.co/elasticsearch/elasticsearch-oss:6.8.12
volumes:
- elasticsearch:/usr/share/elasticsearch/data
environment:
action.auto_create_index: "false"
discovery.type: single-node
nginx:
image: nginx:latest
depends_on:
- php
- notification-server
- notification-server-dusk
volumes:
- ./docker/development/nginx-default.conf:/etc/nginx/conf.d/default.conf
- .:/app
ports:
- "${NGINX_PORT:-8080}:80"
volumes:
database:
elasticsearch: