-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcompose.yaml
157 lines (148 loc) · 4.03 KB
/
compose.yaml
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
144
145
146
147
148
149
150
151
152
153
154
155
156
157
x-logging:
&default-logging
logging:
driver: json-file
options:
max-size: 100M
services:
# docker/judge0
server:
image: judge0/judge0:latest
volumes:
- ./docker/judge0/judge0.conf:/judge0.conf:ro
ports:
- "2358:2358"
privileged: true
<<: *default-logging
restart: always
worker:
image: judge0/judge0:latest
command: ["./scripts/workers"]
volumes:
- ./docker/judge0/judge0.conf:/judge0.conf:ro
privileged: true
<<: *default-logging
restart: always
db:
image: postgres:16.2
env_file: ./docker/judge0/judge0.conf
volumes:
- data:/var/lib/postgresql/data/
<<: *default-logging
restart: always
redis:
image: redis:7.2.4
command: [
"bash", "-c",
'docker-entrypoint.sh --appendonly no --requirepass "$$REDIS_PASSWORD"'
]
env_file: ./docker/judge0/judge0.conf
<<: *default-logging
restart: always
# docker/linter
linter:
image: alpha-dojo-linter:latest
container_name: alpha-dojo-linter
build:
context: ./docker/linter
dockerfile: ./Dockerfile
ports:
- ${LINTER_PORT}:${LINTER_PORT}
environment:
- LINTER_PORT=${LINTER_PORT}
# docker/firebase
firebase:
build:
context: .
dockerfile: ./docker/firebase/Dockerfile
volumes:
- ./.firebaserc:/opt/firebase/.firebaserc
- ./firebase.json:/opt/firebase/firebase.json
- ./storage.rules:/opt/firebase/storage.rules
- ./firestore.rules:/opt/firebase/firestore.rules
- ./docker/firebase/bin/:/root/.cache:cached
- ./docker/firebase/config/:/root/.config:cached
- ./functions:/opt/firebase/functions
- ./extensions:/opt/firebase/extensions
- ./docker/firebase/data:/opt/firebase/data
ports:
- 9099:9099 # Firebase Authentication
- 5001:5001 # Clound Functions
- 8080:8080 # Cloud Firestore
- 9001:9000 # Realtime Database
- 5000:5000 # Firebase Hosting
- 8085:8085 # Cloud Pub/Sub
- 9199:9199 # Cloud Storage
- 4000:4000 # Emulator Suite UI
- 9150:9150
- 4500:4500
working_dir: /opt/firebase
# strapi
strapi:
container_name: strapi
build: ./strapi
# Strapi 公式の Docker image は Ver 3.6.8 なので、image は使わず自前で構築
# image: strapi/strapi:latest
restart: unless-stopped
env_file: .env
environment:
DATABASE_CLIENT: ${DATABASE_CLIENT}
DATABASE_HOST: strapiDB
DATABASE_NAME: ${DATABASE_NAME}
DATABASE_USERNAME: ${DATABASE_USERNAME}
DATABASE_PORT: ${DATABASE_PORT}
JWT_SECRET: ${JWT_SECRET}
ADMIN_JWT_SECRET: ${ADMIN_JWT_SECRET}
DATABASE_PASSWORD: ${DATABASE_PASSWORD}
NODE_ENV: ${NODE_ENV}
volumes:
- ./strapi/config:/opt/app/config
- ./strapi/src:/opt/app/src
- ./strapi/package.json:/opt/package.json
# - ./strapi/package-lock.json:/opt/package-lock.json
- ./.env:/opt/app/.env
- ./strapi/public/uploads:/opt/app/public/uploads
ports:
- '1337:1337'
networks:
- strapi
depends_on:
- strapiDB
strapiDB:
container_name: strapiDB
platform: linux/amd64 #for platform error on Apple M1 chips
restart: unless-stopped
env_file: .env
image: mysql:8.0
environment:
MYSQL_USER: ${DATABASE_USERNAME}
MYSQL_ROOT_PASSWORD: ${DATABASE_PASSWORD}
MYSQL_PASSWORD: ${DATABASE_PASSWORD}
MYSQL_DATABASE: ${DATABASE_NAME}
MYSQL_ROOT_HOST: '%'
volumes:
- ./strapi/strapi-data:/var/lib/mysql
# - ./strapi/data:/var/lib/postgresql/data/ # if you want to use a bind folder
ports:
- '3306:3306'
networks:
- strapi
strapiAdminer:
container_name: strapiAdminer
image: adminer
restart: unless-stopped
ports:
- '9090:8080'
environment:
- ADMINER_DEFAULT_SERVER=strapiDB
networks:
- strapi
depends_on:
- strapiDB
networks:
strapi:
name: Strapi
driver: bridge
# ※judge0 で使用している名前付きボリューム
volumes:
data: