File size: 1,628 Bytes
5893134
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
FROM python:3.12-slim AS builder

RUN apt-get update && apt-get install -y --no-install-recommends \
        build-essential \
        cmake \
        libboost-all-dev \
    && rm -rf /var/lib/apt/lists/*

WORKDIR /build

COPY third_party/CityFlow ./CityFlow
RUN rm -rf ./CityFlow/build
RUN pip install --no-cache-dir ./CityFlow


FROM python:3.12-slim AS runtime

WORKDIR /app

COPY --from=builder /usr/local/lib/python3.12/site-packages/cityflow* \
                    /usr/local/lib/python3.12/site-packages/

COPY openenv_app/requirements.txt ./requirements.txt
RUN pip install --no-cache-dir -r requirements.txt

COPY __init__.py      ./__init__.py
COPY client.py        ./client.py
COPY models.py        ./models.py
COPY agents/          ./agents/
COPY district_llm/    ./district_llm/
COPY env/             ./env/
COPY openenv_app/     ./openenv_app/
COPY server/          ./server/
COPY training/        ./training/
COPY data/splits/     ./data/splits/
COPY data/generated/city_0002/ ./data/generated/city_0002/
COPY artifacts/dqn_shared/best_validation.pt ./artifacts/dqn_shared/best_validation.pt
COPY artifacts/district_llm_adapter_v3/main_run/adapter/ ./artifacts/district_llm_adapter_v3/main_run/adapter/

RUN mkdir -p /app/data/generated /app/data/splits

ENV DATA_DIR=/app/data/generated
ENV SPLITS_DIR=/app/data/splits
ENV CHECKPOINT_PATH=/app/artifacts/dqn_shared/best_validation.pt
ENV DISTRICT_LLM_ADAPTER_PATH=/app/artifacts/district_llm_adapter_v3/main_run/adapter

EXPOSE 7860

CMD ["sh", "-c", "uvicorn server.app:app --host 0.0.0.0 --port ${PORT:-7860}"]