-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdocker-compose.yml
112 lines (104 loc) · 2.85 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
111
112
services:
rabbitmq:
image: rabbitmq:management
container_name: rabbitmq
user: rabbitmq
ports:
- "5672:5672" # RabbitMQ default AMQP port
- "15672:15672" # RabbitMQ management port
volumes:
- ./src/rabbitmq/definitions.json:/etc/rabbitmq/definitions.json:ro
- ./src/rabbitmq/rabbitmq.conf:/etc/rabbitmq/rabbitmq.conf:ro
environment:
RABBITMQ_LOAD_DEFINITIONS: "true"
RABBITMQ_DEFINITIONS_FILE: "/etc/rabbitmq/definitions.json"
minio:
image: minio/minio
command: server /data --console-address ":9001"
environment:
MINIO_ROOT_USER: ${S3_ACCESS_KEY}
MINIO_ROOT_PASSWORD: ${S3_SECRET_KEY}
ports:
- "9000:9000"
- "9001:9001"
volumes:
- minio-data:/data
- minio-buckets:/buckets
healthcheck:
test: ["CMD", "curl", "-f", "http://127.0.0.1:9000/minio/health/live"]
interval: 30s
timeout: 20s
retries: 3
setup:
image: minio/mc
depends_on:
- minio
entrypoint: >
/bin/sh -c "
until (mc alias set myminio http://minio:9000 ${S3_ACCESS_KEY} ${S3_SECRET_KEY}); do
sleep 3;
done;
mc mb myminio/video;
mc anonymous set public myminio/video
"
transcoder:
build: src/transcoder
depends_on:
minio:
condition: service_healthy
environment:
RABBITMQ_HOST: ${RABBITMQ_HOST}
TRANSCODE_QUEUE_NAME : ${TRANSCODE_QUEUE_NAME}
S3_BUCKET_NAME: ${S3_BUCKET_NAME}
STATUS_QUEUE_NAME: ${STATUS_QUEUE_NAME}
S3_ENDPOINT: ${S3_ENDPOINT}
S3_ACCESS_KEY: ${S3_ACCESS_KEY}
S3_SECRET_KEY: ${S3_SECRET_KEY}
controller:
build: src/controller
ports:
- "3000:3000"
environment:
S3_REGION: ${S3_REGION}
S3_ENDPOINT: ${S3_ENDPOINT}
S3_ACCESS_KEY: ${S3_ACCESS_KEY}
S3_SECRET_KEY: ${S3_SECRET_KEY}
S3_BUCKET_NAME: ${S3_BUCKET_NAME}
RABBITMQ_AMQP: ${RABBITMQ_AMQP}
TRANSCODE_QUEUE_NAME: ${TRANSCODE_QUEUE_NAME}
STATUS_QUEUE_NAME: ${STATUS_QUEUE_NAME}
DB_CONNECTION: ${DB_CONNECTION}
GITHUB_CLIENT_ID: ${GITHUB_CLIENT_ID}
GITHUB_CLIENT_SECRET: ${GITHUB_CLIENT_SECRET}
CTRL_BASE_URL: ${CTRL_BASE_URL}
depends_on:
- minio
- rabbitmq
nginx:
image: nginx
ports:
- "9005:9000"
volumes:
- ./src/nginx/nginx.conf:/etc/nginx/nginx.conf
mysql:
image: mysql:latest
environment:
MYSQL_ROOT_PASSWORD: rootpassword
MYSQL_DATABASE: ${DB_NAME}
MYSQL_USER: ${DB_USER}
MYSQL_PASSWORD: ${DB_PASSWORD}
ports:
- "3306:3306"
volumes:
- ./src/mysql/init.sql:/docker-entrypoint-initdb.d/init.sql:ro
- mysql-data:/var/lib/mysql
frontend:
build: src/frontend
ports:
- "5173:5173"
depends_on:
- controller
volumes:
mysql-data:
minio-data:
minio-buckets: