-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathDockerfile
More file actions
59 lines (51 loc) · 1.79 KB
/
Dockerfile
File metadata and controls
59 lines (51 loc) · 1.79 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
FROM python:3.11-slim
ENV PYTHONDONTWRITEBYTECODE=1 \
PYTHONUNBUFFERED=1
WORKDIR /app
RUN apt-get update && apt-get install -y --no-install-recommends build-essential \
&& rm -rf /var/lib/apt/lists/*
COPY requirements.txt ./
RUN pip install --no-cache-dir -r requirements.txt
COPY src ./src
# Bootstrap a tracked model during image build so the container starts ready.
RUN python -m src.train \
--tracking-uri file:/app/mlruns \
--experiment-name artpulse \
--output-dir /app/artifacts
ENV MLFLOW_TRACKING_URI=file:/app/mlruns \
MLFLOW_REGISTRY_URI= \
MLFLOW_EXPERIMENT_NAME=artpulse \
MODEL_URI_FILE=/app/artifacts/latest_model_uri.txt \
USE_MODEL_REGISTRY_ALIAS=false \
MODEL_NAME=artpulse-classifier \
MODEL_ALIAS=champion \
ROLLOUT_MODE=single \
CANARY_TRAFFIC_PERCENT=0 \
CANDIDATE_MODEL_ALIAS=challenger \
ACTIVE_COLOR=blue \
BLUE_MODEL_ALIAS=blue \
GREEN_MODEL_ALIAS=green \
BLUE_GREEN_TRAFFIC_PERCENT=0 \
AUTH_REQUIRED=true \
API_KEYS= \
DEMO_ENABLED=false \
DEMO_JWK_CURRENT_KID=demo-v1 \
DEMO_JWK_KEYS_JSON= \
DEMO_TOKEN_ISSUER=artpulse-demo \
DEMO_TOKEN_AUDIENCE=artpulse-public-demo \
DEMO_TOKEN_TTL_SECONDS=600 \
DEMO_RATE_LIMIT_REQUESTS=30 \
DEMO_RATE_LIMIT_WINDOW_SECONDS=60 \
SIEM_AUDIT_ENABLED=false \
SIEM_AUDIT_LOG_PATH=/app/artifacts/siem_audit_events.jsonl \
JWT_SECRET= \
JWT_ALGORITHM=HS256 \
RATE_LIMIT_ENABLED=true \
RATE_LIMIT_REQUESTS=120 \
RATE_LIMIT_WINDOW_SECONDS=60 \
PREDICTION_LOG_PATH=/app/artifacts/prediction_events.jsonl \
TRAINING_SUMMARY_PATH=/app/artifacts/training_summary.json \
DRIFT_REPORT_PATH=/app/artifacts/drift_report.json \
PORT=8000
EXPOSE 8000
CMD ["bash", "-lc", "uvicorn src.serve:app --host 0.0.0.0 --port ${PORT}"]