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