-
Notifications
You must be signed in to change notification settings - Fork 0
/
docker-compose.dev.yml
76 lines (70 loc) · 2.17 KB
/
docker-compose.dev.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
# Common build configuration for Airflow
# Extension field, see https://docs.docker.com/compose/compose-file/compose-file-v3/#extension-fields
x-airflow-common:
&airflow-common
restart: on-failure
depends_on:
- postgres
- s3
build:
context: .
args:
- REQUIREMENTS_FILE=requirements_dev.txt
- PROJECT_PY_VERSION=${PROJECT_PY_VERSION}
- PROJECT_AIRFLOW_VERSION=${PROJECT_AIRFLOW_VERSION}
volumes:
- ipython:/home/airflow/.ipython
- ./techbloc_airflow:/opt/airflow/techbloc_airflow
# Used in CI to override the default ssh directory, otherwise defaults to home
- ${SSH_DIRECTORY:-~/.ssh}:/opt/ssh/
services:
# Services only needed for local development
s3:
image: minio/minio:latest
ports:
- "5010:5000"
- "5011:5001"
env_file:
- .env
environment:
MINIO_ROOT_USER: ${AWS_ACCESS_KEY}
MINIO_ROOT_PASSWORD: ${AWS_SECRET_KEY}
# Comma separated list of buckets to create on startup
BUCKETS_TO_CREATE: spd-lookup,airflow,techbloc-airflow-logs
# Create empty buckets on every container startup
# Note: $0 is included in the exec because "/bin/bash -c" swallows the first
# argument, so it must be re-added at the beginning of the exec call
entrypoint: >-
/bin/bash -c
"for b in $${BUCKETS_TO_CREATE//,/ }; do
echo \"Making bucket $$b\" && mkdir -p /data/$$b;
done &&
exec $$0 \"$$@\""
command: minio server /data --address :5000 --console-address :5001
volumes:
- minio:/data
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:5010/minio/health/live"]
interval: 30s
timeout: 20s
retries: 3
# Dev changes for the scheduler
scheduler:
<<: *airflow-common
environment:
_AIRFLOW_WWW_USER_CREATE: "true"
_AIRFLOW_WWW_USER_USERNAME: airflow
_AIRFLOW_WWW_USER_PASSWORD: airflow
_AIRFLOW_WWW_USER_FIRSTNAME: Air
_AIRFLOW_WWW_USER_LASTNAME: Flow
_AIRFLOW_WWW_USER_EMAIL: [email protected]
# Dev changes for the webserver container
webserver:
<<: *airflow-common
depends_on:
- s3
- postgres
- scheduler
volumes:
minio:
ipython: