Spaces:
Sleeping
Sleeping
| # ββ Stage 1: Builder βββββββββββββββββββββββββββββββββββββββββ | |
| FROM ubuntu:22.04 AS builder | |
| # Install all required C++ build tools and libraries | |
| RUN apt-get update && apt-get install -y \ | |
| build-essential \ | |
| cmake \ | |
| libboost-system-dev \ | |
| libboost-coroutine-dev \ | |
| libboost-context-dev \ | |
| libssl-dev \ | |
| nlohmann-json3-dev \ | |
| && rm -rf /var/lib/apt/lists/* | |
| WORKDIR /app | |
| # Copy all source files | |
| COPY . . | |
| # Configure and build the C++ project | |
| RUN cmake -B build -S . -DCMAKE_BUILD_TYPE=Release | |
| RUN cmake --build build -j$(nproc) | |
| # ββ Stage 2: Runtime βββββββββββββββββββββββββββββββββββββββββ | |
| FROM ubuntu:22.04 | |
| # FIX: Install runtime libraries for Boost and OpenSSL so the binary can run | |
| RUN apt-get update && apt-get install -y \ | |
| libboost-system1.74.0 \ | |
| libboost-coroutine1.74.0 \ | |
| libboost-context1.74.0 \ | |
| libssl3 \ | |
| && rm -rf /var/lib/apt/lists/* | |
| # HF Spaces requires the app to run as user 1000 | |
| RUN useradd -m -u 1000 appuser | |
| WORKDIR /app | |
| # Copy the compiled binary from the builder stage | |
| COPY --from=builder --chown=appuser:appuser /app/build/collabdocs ./app_server | |
| # Copy your frontend file so the C++ server can serve it | |
| COPY --chown=appuser:appuser index.html . | |
| USER appuser | |
| # HF Spaces exposes port 7860 | |
| EXPOSE 7860 | |
| # Start the C++ executable | |
| CMD ["./app_server"] |