facebookresearch-faiss
SUCCESS
11m 33s
History Source
SummaryIterations1Transcript7Dockerfile
01Iteration 1
WRITEWriteFile· step #1
0s
Dockerfile1074 bytes written
text35 lines · 1074 chars
FROM ubuntu:22.04

# Non-interactive for automated builds
ENV DEBIAN_FRONTEND=noninteractive

# Install build tools and dependencies
RUN apt-get update && apt-get install -y --no-install-recommends \
  ca-certificates \
  gnupg \
  wget \
  curl \
  build-essential cmake git swig python3 python3-dev python3-pip \
  libomp-dev libopenblas-dev libgflags-dev pkg-config \
  && rm -rf /var/lib/apt/lists/*

# Install Python dependencies useful for FAISS Python bindings/tests
RUN python3 -m pip install --upgrade pip \
  && pip3 install numpy==1.26.4 scipy pytest

# Copy source code into the image (assumes repo is at build context root)
WORKDIR /faiss
COPY . /faiss

# Build FAISS from source
RUN mkdir -p build && cd build \
  && cmake -DFAISS_ENABLE_GPU=OFF -DFAISS_ENABLE_CUVS=OFF -DBUILD_TESTING=ON -DCMAKE_BUILD_TYPE=Release .. \
  && cmake --build . -j$(nproc) \
  && cmake --install .

# Ensure runtime linker can find libraries built by FAISS install
ENV LD_LIBRARY_PATH=/usr/local/lib:${LD_LIBRARY_PATH}

# Default to a shell to inspect the image
CMD ["/bin/bash"]
WRITEWriteFile· step #2
0s
.dockerignore117 bytes written
dockerignore10 lines · 117 chars
# Ignore VCS and dependency node modules if any
.git
**/.git
node_modules
build
build/**
*.pyc
__pycache__
.DS_Store
VERIFYVerifyBuild· step #3
1m 47s
VerifyBuildbuild_failed
Build error
- Failing step (command/step):
  RUN mkdir -p build && cd build   && cmake -DFAISS_ENABLE_GPU=OFF -DFAISS_ENABLE_CUVS=OFF -DBUILD_TESTING=ON -DCMAKE_BUILD_TYPE=Release ..   && cmake --build . -j$(nproc)   && cmake --install .

- Exact error message and exit code:
  -- Configuring incomplete, errors occurred!
  CMake Error at CMakeLists.txt:22 (cmake_minimum_required):
    CMake 3.24.0 or higher is required.  You are running version 3.22.1

  (Exit code: 1)

- Missing packages or files mentioned:
  - None explicitly mentioned as missing. The failure is due to a version mismatch (CMake 3.22.1 vs required 3.24.0+).

- Version mismatch / related info:
  - WA: FAISS build requires CMake 3.24.0 or higher.
  - Installed CMake version (in the image) is 3.22.1 (CMake 3.22.1/cmake-data shown in the build logs).
  - This is the root cause of the failure: CMake version is too old for the CMakeLists.txt requirement.
WRITEWriteFile· step #4
0s
Dockerfile1404 bytes written
text43 lines · 1404 chars
FROM ubuntu:22.04

# Non-interactive for automated builds
ENV DEBIAN_FRONTEND=noninteractive

# Install build tools and dependencies
RUN apt-get update && apt-get install -y --no-install-recommends \
  ca-certificates \
  gnupg \
  wget \
  curl \
  build-essential cmake git swig python3 python3-dev python3-pip \
  libomp-dev libopenblas-dev libgflags-dev pkg-config \
  && rm -rf /var/lib/apt/lists/*

# Install a newer CMake (>=3.24) since the project requires it
RUN mkdir -p /opt/cmake && \
  cd /opt/cmake && \
  wget -q https://cmake.org/files/v3.26/cmake-3.26.5-linux-x86_64.tar.gz && \
  tar -xzf cmake-3.26.5-linux-x86_64.tar.gz --strip-components=1 && \
  rm cmake-3.26.5-linux-x86_64.tar.gz
ENV PATH=/opt/cmake/bin:$PATH

# Install Python dependencies useful for FAISS Python bindings/tests
RUN python3 -m pip install --upgrade pip \
  && pip3 install numpy==1.26.4 scipy pytest

# Copy source code into the image (assumes repo is at build context root)
WORKDIR /faiss
COPY . /faiss

# Build FAISS from source
RUN mkdir -p build && cd build \
  && cmake -DFAISS_ENABLE_GPU=OFF -DFAISS_ENABLE_CUVS=OFF -DBUILD_TESTING=ON -DCMAKE_BUILD_TYPE=Release .. \
  && cmake --build . -j$(nproc) \
  && cmake --install .

# Ensure runtime linker can find libraries built by FAISS install
ENV LD_LIBRARY_PATH=/usr/local/lib:${LD_LIBRARY_PATH}

# Default to a shell to inspect the image
CMD ["/bin/bash"]
VERIFYVerifyBuild· step #5
5m 41s
VerifyBuildsmoke_failed
Concerns: Assumes FAISS Python bindings are not required for the smoke tests; if tests rely on Python bindings, ensure BUILD_FAISS_PYTHON/BINDINGS and Python package creation are configured., Smoke tests assume the installed FAISS library ends up at /usr/local/lib with libfaiss.so; verify installation path is consistent across platforms or images.
Smoke [FAIL]: test -f /usr/local/lib/libfaiss.so && echo 'faiss.so found
  Output: sh: 1: Syntax error: Unterminated quoted string

Smoke [FAIL]: python3 -c "import ctypes; ctypes.CDLL('/usr/local/lib/libfaiss.so'); print('faiss loaded')
  Output: sh: 1: Syntax error: Unterminated quoted string

Smoke [FAIL]: cat > /tmp/faiss_smoke.cpp << 'CPP'
#include <faiss/IndexFlat.h>
int main(){ faiss::IndexFlatL2 idx(1); return 0; }
CPP

g++ -I/usr/local/include -L/usr/local/lib /tmp/faiss_smoke.cpp -lfaiss -o /tmp/faiss_smoke && /tmp/faiss_smoke
  Output: /usr/bin/ld: /usr/local/lib/libfaiss.a(Index.cpp.o): in function `faiss::Index::reconstruct_n(long, long, float*) const':
Index.cpp:(.text+0x187): undefined reference to `GOMP_parallel'
/usr/bin/ld: /usr/local/lib/libfaiss.a(Index.cpp.o): in function `faiss::Index::compute_residual_n(long, float const*, float*, long const*) const':
Index.cpp:(.text+0x201): undefined reference to `GOMP_parallel'
/usr/bin/ld: /usr/local/lib/libfaiss.a(Index.cpp.o): in function `faiss::Index::reconstruct_n(long, lo
WRITEWriteFile· step #6
0s
Dockerfile1457 bytes written
text43 lines · 1457 chars
FROM ubuntu:22.04

# Non-interactive for automated builds
ENV DEBIAN_FRONTEND=noninteractive

# Install build tools and dependencies
RUN apt-get update && apt-get install -y --no-install-recommends \
  ca-certificates \
  gnupg \
  wget \
  curl \
  build-essential cmake git swig python3 python3-dev python3-pip \
  libomp-dev libopenblas-dev libgflags-dev pkg-config \
  && rm -rf /var/lib/apt/lists/*

# Install a newer CMake (>=3.24) since the project requires it
RUN mkdir -p /opt/cmake && \
  cd /opt/cmake && \
  wget -q https://cmake.org/files/v3.26/cmake-3.26.5-linux-x86_64.tar.gz && \
  tar -xzf cmake-3.26.5-linux-x86_64.tar.gz --strip-components=1 && \
  rm cmake-3.26.5-linux-x86_64.tar.gz
ENV PATH=/opt/cmake/bin:$PATH

# Install Python dependencies useful for FAISS Python bindings/tests
RUN python3 -m pip install --upgrade pip \
  && pip3 install numpy==1.26.4 scipy pytest

# Copy source code into the image (assumes repo is at build context root)
WORKDIR /faiss
COPY . /faiss

# Build FAISS from source
RUN mkdir -p build && cd build \
  && cmake -DFAISS_ENABLE_GPU=OFF -DFAISS_ENABLE_CUVS=OFF -DFAISS_ENABLE_PYTHON=OFF -DFAISS_ENABLE_EXTRAS=OFF -DBUILD_TESTING=OFF -DCMAKE_BUILD_TYPE=Release .. \
  && cmake --build . -j$(nproc) \
  && cmake --install .

# Ensure runtime linker can find libraries built by FAISS install
ENV LD_LIBRARY_PATH=/usr/local/lib:${LD_LIBRARY_PATH}

# Default to a shell to inspect the image
CMD ["/bin/bash"]
VERIFYVerifyBuild· step #7
2m 00s
VerifyBuildaccepted
Concerns: The CMake option -DFAISS_ENABLE_CUVS=OFF appears to be a misspelled/unknown flag; it will be treated as an undefined variable by CMake, which is typically safe but could indicate a typo or misconfiguration., Python bindings are disabled (-DFAISS_ENABLE_PYTHON=OFF) but Python tooling is installed in the image; this is fine if Python bindings are truly not needed, but could cause confusion if Python usage was expected.
Smoke [PASS]: test -d /usr/local/include/faiss
Smoke [PASS]: test -f /usr/local/lib/libfaiss.so || test -f /usr/local/lib/libfaiss.a
Smoke [PASS]: ls -l /usr/local/lib | grep -m1 faiss