-
Notifications
You must be signed in to change notification settings - Fork 13
Expand file tree
/
Copy pathdocker-compose.yaml
More file actions
142 lines (137 loc) · 3.94 KB
/
docker-compose.yaml
File metadata and controls
142 lines (137 loc) · 3.94 KB
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
services:
# PostgreSQL service removed - now using SQLite for simpler deployment
# This service runs dagster-webserver with user code loaded directly as a Python module.
# No separate gRPC code server needed - simpler and more reliable.
anomstack_webserver:
build:
context: .
dockerfile: docker/Dockerfile.dagster
args:
ANOMSTACK_BUILD_HASH: ${ANOMSTACK_BUILD_HASH:-unknown}
ANOMSTACK_BUILD_TIME: ${ANOMSTACK_BUILD_TIME:-unknown}
image: anomstack_dagster_image
entrypoint:
- dagster-webserver
- -h
- "0.0.0.0"
- -p
- "3000"
- -w
- /opt/dagster/dagster_home/workspace.yaml
container_name: anomstack_webserver
restart: on-failure
expose:
- "3000"
ports:
- "3000:3000"
env_file:
- .env
environment:
DAGSTER_HOME: "/opt/dagster/dagster_home"
ANOMSTACK_DUCKDB_PATH: "/data/anomstack.db"
volumes:
- ./tmp:/opt/dagster/app/tmp
- anomstack_metrics_duckdb:/data
- ./dagster_home:/opt/dagster/dagster_home
- ./dagster_docker.yaml:/opt/dagster/dagster_home/dagster.yaml
- ./metrics:/opt/dagster/app/metrics # 🔥 ENABLES HOT CONFIG UPDATES
networks:
- anomstack_network
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:3000/server_info"]
interval: 30s
timeout: 10s
retries: 3
start_period: 30s
deploy:
resources:
limits:
memory: 1G
cpus: '0.5'
reservations:
memory: 256M
cpus: '0.1'
# This service runs the dagster-daemon process, which is responsible for taking runs
# off of the queue and launching them, as well as creating runs from schedules or sensors.
anomstack_daemon:
build:
context: .
dockerfile: docker/Dockerfile.dagster
args:
ANOMSTACK_BUILD_HASH: ${ANOMSTACK_BUILD_HASH:-unknown}
ANOMSTACK_BUILD_TIME: ${ANOMSTACK_BUILD_TIME:-unknown}
image: anomstack_dagster_image
entrypoint:
- dagster-daemon
- run
container_name: anomstack_daemon
restart: on-failure
env_file:
- .env
environment:
DAGSTER_HOME: "/opt/dagster/dagster_home"
ANOMSTACK_DUCKDB_PATH: "/data/anomstack.db"
volumes:
- ./tmp:/opt/dagster/app/tmp
- anomstack_metrics_duckdb:/data
- ./dagster_home:/opt/dagster/dagster_home
- ./dagster_docker.yaml:/opt/dagster/dagster_home/dagster.yaml
- ./metrics:/opt/dagster/app/metrics # 🔥 ENABLES HOT CONFIG UPDATES
networks:
- anomstack_network
healthcheck:
test: ["CMD", "dagster-daemon", "liveness-check"]
interval: 30s
timeout: 10s
retries: 3
start_period: 30s
deploy:
resources:
limits:
memory: 1G
cpus: '0.5'
reservations:
memory: 256M
cpus: '0.1'
# This service runs the dashboard
anomstack_dashboard:
build:
context: .
dockerfile: docker/Dockerfile.anomstack_dashboard
args:
ANOMSTACK_BUILD_HASH: ${ANOMSTACK_BUILD_HASH:-unknown}
ANOMSTACK_BUILD_TIME: ${ANOMSTACK_BUILD_TIME:-unknown}
image: anomstack_dashboard_image
container_name: anomstack_dashboard
restart: on-failure
ports:
- "5001:8080"
env_file:
- .env
command: uvicorn dashboard.app:app --host 0.0.0.0 --port 8080 --reload
volumes:
- anomstack_metrics_duckdb:/data
- ./metrics:/opt/dagster/app/metrics
networks:
- anomstack_network
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8080/health"]
interval: 30s
timeout: 10s
retries: 3
start_period: 30s
deploy:
resources:
limits:
memory: 1G
cpus: '0.5'
reservations:
memory: 256M
cpus: '0.1'
networks:
anomstack_network:
driver: bridge
name: anomstack_network
volumes:
anomstack_metrics_duckdb:
name: anomstack_metrics_duckdb