FROM cr.openfuyao.cn/openfuyao/builder/mooncake:1.0.0 AS mooncake_build

ENV DEBIAN_FRONTEND=noninteractive

ENV PYTHONUNBUFFERED=1
ENV SKIP_CONFIRM=true
ENV CPATH=/usr/include/aarch64-linux-gnu/mpich:$CPATH

# Clone Mooncake repository
ADD . /workspace/Mooncake

RUN apt update && apt install -y --no-install-recommends \
    curl \
    git \
    python3-dev \
    && rm -rf /var/lib/apt/lists/*

WORKDIR /workspace/Mooncake

RUN <<'EOF'
#!/bin/bash -xeu
mkdir build
cd build

mkdir -p /workspace/Mooncake/extern/pybind11
curl -L https://github.com/pybind/pybind11/archive/refs/tags/v2.12.0.tar.gz | tar xz --strip-components=1 -C /workspace/Mooncake/extern/pybind11

# About MPI_EXECUTABLE_SUFFIX please check https://cmake.org/cmake/help/latest/module/FindMPI.html
cmake -DCMAKE_INSTALL_PREFIX=/install \
    -DCMAKE_CXX_COMPILER=mpicxx \
    -DUSE_ASCEND=OFF \
    -DUSE_CUDA=OFF \
    -DUSE_CXL=OFF \
    -DUSE_HTTP=ON \
    -DUSE_REDIS=ON \
    -DWITH_STORE=ON \
    -DMPI_EXECUTABLE_SUFFIX=.mpich .. 
make -j$(nproc)
make install
EOF