1
1
services :
2
2
postgres :
3
- image : postgres:15
4
- hostname : postgres
5
- env_file : .env
6
- environment :
7
- - POSTGRES_USER=${POSTGRES_USER}
8
- - POSTGRES_PASSWORD=${POSTGRES_USER}
9
- - POSTGRES_DB=${POSTGRES_DB}
10
- ports :
11
- - ${POSTGRES_PORT}:5432
3
+ extends :
4
+ file : docker-compose-base.yml
5
+ service : postgres
12
6
13
- healthcheck :
14
- test : [ "CMD-SHELL", "pg_isready", "-d", "${POSTGRES_DB}" ]
15
- interval : 30s
16
- timeout : 60s
17
- retries : 5
18
- start_period : 80s
19
- networks :
20
- - flatland-benchmarks
21
7
redis :
22
- image : redis
23
- ports :
24
- - ${REDIS_PORT:-6379}:6379
25
- restart : unless-stopped
26
- logging :
27
- options :
28
- max-size : " 20m"
29
- max-file : " 5"
30
- networks :
31
- - flatland-benchmarks
8
+ extends :
9
+ file : docker-compose-base.yml
10
+ service : redis
32
11
33
12
redis-monitor :
34
- image : redis
35
- command : redis-cli -h redis -p 6379 monitor
36
- restart : unless-stopped
37
- logging :
38
- options :
39
- max-size : " 20m"
40
- max-file : " 5"
41
- depends_on :
42
- redis :
43
- condition : service_started
44
- networks :
45
- - flatland-benchmarks
13
+ extends :
14
+ file : docker-compose-base.yml
15
+ service : redis-monitor
46
16
47
17
rabbit :
48
- build :
49
- context : rabbitmq
50
- dockerfile : Dockerfile
51
- args :
52
- - WORKER_CONNECTION_TIMEOUT=${WORKER_CONNECTION_TIMEOUT}
53
- hostname : rabbit
54
- env_file : .env
55
- environment :
56
- - http_proxy=${RABBITMQ_HTTP_PROXY}
57
- - https_proxy=${RABBITMQ_HTTPS_PROXY}
58
- - no_proxy=${RABBITMQ_NO_PROXY}
59
- ports :
60
- - ${RABBITMQ_MANAGEMENT_PORT:-15672}:15672
61
- - ${RABBITMQ_PORT}:5672
62
- restart : unless-stopped
63
- logging :
64
- options :
65
- max-size : " 20m"
66
- max-file : " 5"
67
- healthcheck :
68
- test : rabbitmqctl status
69
- interval : 10s
70
- timeout : 10s
71
- retries : 30
72
- networks :
73
- - flatland-benchmarks
18
+ extends :
19
+ file : docker-compose-base.yml
20
+ service : rabbit
74
21
75
22
minio :
76
- hostname : minio
77
- image : " minio/minio:RELEASE.2024-11-07T00-52-20Z"
78
- restart : on-failure
79
- ports :
80
- - " ${MINIO_PORT}:${MINIO_PORT}"
81
- - " ${MINIO_CONSOLE_PORT}:${MINIO_CONSOLE_PORT}"
82
- environment :
83
- MINIO_ROOT_USER : " ${MINIO_ROOT_USER}"
84
- MINIO_ROOT_PASSWORD : " ${MINIO_ROOT_PASSWORD}"
85
- healthcheck :
86
- test : [ "CMD", "bash", "-c", "curl -v --fail 127.0.0.1:${MINIO_PORT}/minio/health/ready" ]
87
- interval : 5s
88
- timeout : 1s
89
- retries : 5
90
- command : server /data --address :${MINIO_PORT} --console-address :${MINIO_CONSOLE_PORT}
91
- networks :
92
- - flatland-benchmarks
23
+ extends :
24
+ file : docker-compose-base.yml
25
+ service : minio
93
26
94
27
minio_setup :
95
- image : minio/mc:RELEASE.2024-11-05T11-29-45Z
96
- depends_on :
97
- minio :
98
- condition : service_healthy
99
- entrypoint : [ "/bin/sh","-c" ]
100
- command :
101
- - |
102
- set -x
103
- set -e
104
- /usr/bin/mc config host add myminio http://minio:${MINIO_PORT} ${MINIO_ROOT_USER} ${MINIO_ROOT_PASSWORD}
28
+ extends :
29
+ file : docker-compose-base.yml
30
+ service : minio_setup
105
31
106
- /usr/bin/mc mb myminio/${S3_BUCKET}
107
-
108
- echo "createbuckets successful"
109
- networks :
110
- - flatland-benchmarks
111
32
compute_worker :
112
- # https://docs.celeryq.dev/en/stable/reference/cli.html#celery-worker
113
- command : python -m celery -A tasks worker -l info -n compute-worker@%n
114
- build :
115
- context : ./compute_worker
116
- dockerfile : Dockerfile_docker_compose
117
- depends_on :
118
- rabbit :
119
- condition : service_healthy
120
- minio_setup :
121
- condition : service_completed_successfully
122
- volumes :
123
- - /var/run/docker.sock:/var/run/docker.sock
124
- - ./compute_worker/tasks_docker_compose.py:/app/tasks.py
125
- env_file : .env
126
- environment :
127
- - BROKER_URL=pyamqp://${RABBITMQ_DEFAULT_USER}:${RABBITMQ_DEFAULT_PASS}@${RABBITMQ_HOST}:5672//
128
- - REDIS_IP=redis://redis:6379
129
- - HOST_DIRECTORY=${PWD}
130
- - BENCHMARKING_NETWORK=${COMPOSE_PROJECT_NAME}_flatland-benchmarks
131
- - S3_BUCKET=${S3_BUCKET}
132
- # for backend to S3 communication, use internal docker hostname
133
- - AWS_ENDPOINT_URL=http://minio:${MINIO_PORT}
134
- - AWS_ACCESS_KEY_ID=${MINIO_ROOT_USER}
135
- - AWS_SECRET_ACCESS_KEY=${MINIO_ROOT_PASSWORD}
136
- # TODO remove:
137
- - S3_UPLOAD_PATH_TEMPLATE=${S3_UPLOAD_PATH_TEMPLATE}
138
- - S3_UPLOAD_WITH_SUBMISSION_ID=true
139
- - S3_UPLOAD_PATH_TEMPLATE_USE_SUBMISSION_ID=${S3_UPLOAD_PATH_TEMPLATE_USE_SUBMISSION_ID}
140
-
141
-
142
- logging :
143
- options :
144
- max-size : " 20m"
145
- max-file : " 5"
146
- healthcheck :
147
- test : celery -A tasks inspect ping
148
- networks :
149
- - flatland-benchmarks
33
+ extends :
34
+ file : docker-compose-base.yml
35
+ service : compute_worker
150
36
151
37
fab-backend :
152
38
image : ghcr.io/flatland-association/fab-backend:latest
@@ -171,6 +57,6 @@ services:
171
57
condition : service_healthy
172
58
ports :
173
59
- 80:80
60
+
174
61
networks :
175
62
flatland-benchmarks :
176
-
0 commit comments