tokev's picture
Add files using upload-large-folder tool
5893134 verified
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}"]