-
Notifications
You must be signed in to change notification settings - Fork 0
/
docker-compose.yml
110 lines (99 loc) · 2.79 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: '2.3'
# we should use 2.3 (because `runtime` parameter doesn't support it in v3)
# https://github.com/docker/compose/issues/5360#issuecomment-354354667
services:
ai:
build: .
# command: /opt/conda/bin/jupyter notebook --notebook-dir=/opt/notebooks --allow-root --ip='*' --port=8888 --no-browser
depends_on:
- luigi_scheduler
- mlflow_server
environment:
- MLFLOW_TRACKING_URI=http://mlflow_server:5000
- NLTK_DATA=/var/datasets/0/nltk
- DAGS_FOLDER=/opt/notebooks/airflow/dags
ports:
- "8888:8888"
volumes:
- mlflow_artifacts:/artifacts
- .:/opt/notebooks/
# TODO: here could be better way to mount all softlinks
- /var/datasets/0:/var/datasets/0
- /var/datasets/1:/var/datasets/1
- /var/datasets/2:/var/datasets/2
- ~/.kaggle:/root/.kaggle
# we can alter the path by KERAS_HOME
# https://github.com/keras-team/keras/blob/master/keras/utils/data_utils.py#L174
- /var/models/2/keras:/root/.keras
# gensim has hardcoded place of its data (pretrained model)
# https://github.com/RaRe-Technologies/gensim/blob/master/gensim/downloader.py#L66
- /var/datasets/1/gensim-data:/root/gensim-data
# we would store checkpoints and event files here
# TODO: here could be better way to mount all softlinks
- /var/models/1:/var/models/1
- /var/models/2:/var/models/2
restart: always
runtime: nvidia
# user: ${CURRENT_UID}
# TODO: setup db later
#
# db:
# image: postgres:9.5.4
# ports:
# - "5433:5432"
# environment:
# POSTGRES_USER: luigi
# POSTGRES_DB: dev
luigi_scheduler:
build:
context: luigi-scheduler
dockerfile: Dockerfile
ports:
- "8082:8082"
restart: always
# depends_on:
# - db
# entrypoint:
# - ./wait-for-postgres.sh
# - db
mlflow_server:
build:
context: mlflow-server
dockerfile: Dockerfile
environment:
- PATH_TO_ARTIFACTS=/artifacts
- PATH_TO_TRACKING=/tracking
- MLFLOW_PORT=5000
volumes:
- mlflow_artifacts:/artifacts
- /var/metrics/1/mlflow/tracking:/tracking
ports:
- "5000:5000"
restart: always
tfboard:
build:
context: .
dockerfile: Dockerfile-tfboard
ports:
- "6006:6006"
environment:
- LOGS_PATH=/var/models/
volumes:
# TODO: here could be better way to mount all softlinks
- /var/models/1:/var/models/1
- /var/models/2:/var/models/2
restart: always
gpu_prometheus_exporter:
build:
context: gpu_prometheus_exporter
dockerfile: Dockerfile
args:
- PORT=9101
ports:
- "9101:9101"
restart: always
runtime: nvidia
volumes:
- ./gpu_prometheus_exporter/src:/go/src/app
volumes:
mlflow_artifacts: {}