FROM ubuntu:jammy-20260217 ENV DEBIAN_FRONTEND=noninteractive # Install build and runtime dependencies for OpenPose CPU-only build RUN apt-get update && apt-get install -y --no-install-recommends \ build-essential cmake git pkg-config wget ca-certificates python3-dev python3-pip \ libprotobuf-dev protobuf-compiler libopencv-dev libboost-all-dev \ libgflags-dev libglog-dev libeigen3-dev libopenblas-dev libatlas-base-dev \ libhdf5-dev libjpeg-dev libtiff5-dev zlib1g-dev libgl1-mesa-dev \ libx11-dev libglew-dev \ && rm -rf /var/lib/apt/lists/* # OpenPose is built from source in /workspace WORKDIR /workspace # Copy the entire repository into the image COPY . /workspace # Configure and build OpenPose in CPU-only mode RUN cmake -S . -B build -DCMAKE_BUILD_TYPE=Release -DGPU_MODE CPU_ONLY -DBUILD_SHARED_LIBS=ON -DWITH_OPENCV_WITH_OPENGL=OFF -DBUILD_PYTHON=OFF && \ cmake --build build -j$(nproc) # Default to an interactive shell to inspect the image CMD ["/bin/bash"]
# Ignore git repository and IDE/editor files .git .gitignore *.swp *.log *.cache *.idea *.vscode build CMakeFiles CMakeCache.txt -Debug -Release *.o *.a *.so *.dylib *.exe *.dll # Ignore Python caches __pycache__ *.pyc # Node modules and npm/yarn node_modules package-lock.json yarn.lock
Concerns: CMake invocation uses -DGPU_MODE CPU_ONLY instead of -DGPU_MODE=CPU_ONLY; this is a syntax error and will cause the build to fail., COPY . /workspace copies the entire repository into the image; consider using a .dockerignore to exclude large or unnecessary files to keep the image context and final image smaller., No explicit verification steps are included to validate that the build artifacts were produced successfully (e.g., checking for built libraries).
FROM ubuntu:jammy-20260217 ENV DEBIAN_FRONTEND=noninteractive # Install build and runtime dependencies for OpenPose CPU-only build RUN apt-get update && apt-get install -y --no-install-recommends \ build-essential cmake git pkg-config wget ca-certificates python3-dev python3-pip \ libprotobuf-dev protobuf-compiler libopencv-dev libboost-all-dev \ libgflags-dev libglog-dev libeigen3-dev libopenblas-dev libatlas-base-dev \ libhdf5-dev libjpeg-dev libtiff5-dev zlib1g-dev libgl1-mesa-dev \ libx11-dev libglew-dev \ && rm -rf /var/lib/apt/lists/* # OpenPose is built from source in /workspace WORKDIR /workspace # Copy the entire repository into the image COPY . /workspace # Configure and build OpenPose in CPU-only mode RUN cmake -S . -B build -DCMAKE_BUILD_TYPE=Release -DGPU_MODE=CPU_ONLY -DBUILD_SHARED_LIBS=ON -DWITH_OPENCV_WITH_OPENGL=OFF -DBUILD_PYTHON=OFF && \ cmake --build build -j$(nproc) # Default to an interactive shell to inspect the image CMD ["/bin/bash"]
- Exact error message and exit code
- Error: E: Unable to locate package libglog-dev
- Exit code: 100
- Failing command/step
- Dockerfile step: [2/5] RUN apt-get update && apt-get install -y --no-install-recommends \
build-essential cmake git pkg-config wget ca-certificates python3-dev python3-pip \
libprotobuf-dev protobuf-compiler libopencv-dev libboost-all-dev \
libgflags-dev libglog-dev libeigen3-dev libopenblas-dev libatlas-base-dev \
libhdf5-dev libjpeg-dev libtiff5-dev zlib1g-dev libgl1-mesa-dev \
libx11-dev libglew-dev && rm -rf /var/lib/apt/lists/*
- Dockerfile:6
- Missing packages or files mentioned
- libglog-dev (missing/not found by apt)
- Version mismatch info
- Base image: ubuntu:jammy-20260217 (tag shown as jammy-20260217 with sha256: bf7bfa0b43e4…)
- The dated jammy snapshot used by this build does not provide libglog-dev, causing the apt failure (package not available in this snapshot).FROM ubuntu:jammy-20260217 ENV DEBIAN_FRONTEND=noninteractive # Install build and runtime dependencies for OpenPose CPU-only build RUN apt-get update && apt-get install -y --no-install-recommends \ build-essential cmake git pkg-config wget ca-certificates python3-dev python3-pip \ libprotobuf-dev protobuf-compiler libopencv-dev libboost-all-dev \ libgflags-dev libgoogle-glog-dev libeigen3-dev libopenblas-dev libatlas-base-dev \ libhdf5-dev libjpeg-dev libtiff5-dev zlib1g-dev libgl1-mesa-dev \ libx11-dev libglew-dev \ && rm -rf /var/lib/apt/lists/* # OpenPose is built from source in /workspace WORKDIR /workspace # Copy the entire repository into the image COPY . /workspace # Configure and build OpenPose in CPU-only mode RUN cmake -S . -B build -DCMAKE_BUILD_TYPE=Release -DGPU_MODE=CPU_ONLY -DBUILD_SHARED_LIBS=ON -DWITH_OPENCV_WITH_OPENGL=OFF -DBUILD_PYTHON=OFF && \ cmake --build build -j$(nproc) # Default to an interactive shell to inspect the image CMD ["/bin/bash"]
Summary (under 1500 chars):
- VerifyBuild status: build_failed
- Failing step: Dockerfile step #9:
RUN cmake -S . -B build -DCMAKE_BUILD_TYPE=Release -DGPU_MODE=CPU_ONLY -DBUILD_SHARED_LIBS=ON -DWITH_OPENCV_WITH_OPENGL=OFF -DBUILD_PYTHON=OFF && cmake --build build -j$(nproc)
- Exact errors:
- fatal: not a git repository (or any of the parent directories): .git (occurs twice around the Caffe download attempts)
- CMake Error at /usr/share/cmake-3.22/Modules/ExternalProject.cmake:2882 (message):
No download info given for 'openpose_lib' and its source directory:
/workspace/3rdparty/caffe is not an existing non-empty directory. Please specify one of:
- SOURCE_DIR with an existing non-empty directory
- DOWNLOAD_COMMAND
- URL
- GIT_REPOSITORY
- SVN_REPOSITORY
- HG_REPOSITORY
- CVS_REPOSITORY
- Final exit: exit code 1 from the step running the cmake command
- Missing/misaligned components:
- Missing OpenPose OpenPose caffe integration: “No download info given for 'openpose_lib'”
- Source directory /workspace/3rdparty/caffe is not an existing non-empty directory
- Version/toolchain notes:
- Build uses GNU 11.4.0 (GCC 11)
- apt/logs show attempts to upgrade to gcc-12-base and related libgcc/libstdc++6, implying a mixed toolchain
- Context:
- Failure occurs after attempting to download/train OpenPose models and before fetching OpenPose Caffe dependencies; ExternalProject fails due to missing download info for openpose_lib
- Base image:
- Base image tag jammy-20260217; consider pinning to a stable known-good base or use a multi-stage build
- Recommendations (actionable):
- Ensure the OpenPose source provides a valid CMake config and dependencies; CI should validate the source layout
- Provide download/source info for openpose_lib in ExternalProject (SOURCE_DIR or URL/GIT_REPOSITORY)
- Ensure /workspace/3rdparty/caffe exists as a non-empty directory or adjust ExternalProject arguments (SOURCE_DIR/DOWNLOAD_COMMAND/URL/GIT_REPOSITORY)
- Align toolchain to a stable GCC version; avoid mixed gcc upgrades
- Pin the base image or adopt a multi-stage build to isolate model data handlingFROM ubuntu:jammy-20260217 ENV DEBIAN_FRONTEND=noninteractive # Install build and runtime dependencies for OpenPose CPU-only build RUN apt-get update && apt-get install -y --no-install-recommends \ build-essential cmake git pkg-config wget ca-certificates python3-dev python3-pip \ libprotobuf-dev protobuf-compiler libopencv-dev libboost-all-dev \ libgflags-dev libgoogle-glog-dev libeigen3-dev libopenblas-dev libatlas-base-dev \ libhdf5-dev libjpeg-dev libtiff5-dev zlib1g-dev libgl1-mesa-dev \ libx11-dev libglew-dev \ && rm -rf /var/lib/apt/lists/* # OpenPose is built from source in /workspace WORKDIR /workspace # Copy the entire repository into the image COPY . /workspace # Configure and build OpenPose in CPU-only mode RUN cmake -S . -B build -DCMAKE_BUILD_TYPE=Release -DGPU_MODE=CPU_ONLY -DBUILD_SHARED_LIBS=ON -DWITH_OPENCV_WITH_OPENGL=OFF -DBUILD_PYTHON=OFF && \ cmake --build build -j$(nproc) # Default to an interactive shell to inspect the image CMD ["/bin/bash"]
# Ignore git repository and IDE/editor files .git .gitignore *.swp *.log *.cache *.idea *.vscode build CMakeFiles CMakeCache.txt -Debug -Release *.o *.a *.so *.dylib *.exe *.dll # Ignore Python caches __pycache__ *.pyc # Node modules and npm/yarn node_modules package-lock.json yarn.lock
Status: VerifyBuild status: build_failed Failing command - [5/5] RUN cmake -S . -B build -DCMAKE_BUILD_TYPE=Release -DGPU_MODE=CPU_ONLY -DBUILD_SHARED_LIBS=ON -DWITH_OPENCV_WITH_OPENGL=OFF -DBUILD_PYTHON=OFF && cmake --build build -j$(nproc) - Exit code: 1 - Error summary: ERROR: process "/bin/sh -c cmake -S . -B build -DCMAKE_BUILD_TYPE=Release -DGPU_MODE=CPU_ONLY -DBUILD_SHARED_LIBS=ON -DWITH_OPENCV_WITH_OPENGL=OFF -DBUILD_PYTHON=OFF && cmake --build build -j$(nproc)" did not complete successfully: exit code: 1 Root cause - CMake error during ExternalProject setup: CMake Error at /usr/share/cmake-3.22/Modules/ExternalProject.cmake:2882 (message): No download info given for 'openpose_lib' and its source directory: /workspace/3rdparty/caffe is not an existing non-empty directory. Please specify one of: * SOURCE_DIR with an existing non-empty directory * DOWNLOAD_COMMAND * URL * GIT_REPOSITORY * SVN_REPOSITORY * HG_REPOSITORY * CVS_REPOSITORY Call Stack (most recent call first): /usr/share/cmake-3.22/Modules/ExternalProject.cmake:3716 (_ep_add_download_command) CMakeLists.txt:803 (ExternalProject_Add) Additional context - The build attempt notes: “Caffe will be downloaded from source now.” followed by “fatal: not a git repository (or any of the parent directories): .git” (two occurrences) - After this, the log shows: “Download the models.” and finally “Configuring incomplete, errors occurred!” with a pointer to CMakeOutput.log Environment and version clues - Base image: ubuntu:jammy-20260217 - Compiler/toolchain: GNU 11.4.0 - Found dependencies: Protobuf 3.12.4; OpenCV 4.5.4 - Build path: /workspace/ (CMakeOutput.log at /workspace/build/CMakeFiles/CMakeOutput.log) Missing files/packages mentioned - Missing download/source info for openpose_lib; ExternalProject_Add requires SOURCE_DIR or URL/GIT_REPOSITORY/etc. - /workspace/3rdparty/caffe is not an existing non-empty directory Notes - Root cause is the OpenPose/OpenPose-Caffe integration step lacking proper download/source configuration for openpose_lib, coupled with an invalid /workspace/3rdparty/caffe directory. Concerns (actionable guidance) - Building OpenPose from source in CI can be slow; consider multi-stage builds or caching. - COPY . /workspace copies the entire repo; add a .dockerignore to exclude tests/docs/large assets. - FROM ubuntu:jammy-20260217 is a dated tag; verify availability and pin to a digest for reproducibility and security. What to fix (actionable) - Ensure ExternalProject_Add for openpose_lib provides SOURCE_DIR with an existing non-empty directory or a valid URL/GIT_REPOSITORY/DOWNLOAD_COMMAND. - Ensure /workspace/3rdparty/caffe exists and is non-empty, or adjust the build to download/build caffe properly. - Correct the OpenPose-Caffe integration step to supply proper download/source configuration for openpose_lib. - If appropriate, add .dockerignore and pin base image digest to improve reproducibility and build speed.
FROM ubuntu:jammy-20260217 ENV DEBIAN_FRONTEND=noninteractive # Install build and runtime dependencies for OpenPose CPU-only build RUN apt-get update && apt-get install -y --no-install-recommends \ build-essential cmake git pkg-config wget ca-certificates python3-dev python3-pip \ libprotobuf-dev protobuf-compiler libopencv-dev libboost-all-dev \ libgflags-dev libgoogle-glog-dev libeigen3-dev libopenblas-dev libatlas-base-dev \ libhdf5-dev libjpeg-dev libtiff5-dev zlib1g-dev libgl1-mesa-dev \ libx11-dev libglew-dev \ && rm -rf /var/lib/apt/lists/* # OpenPose is built from source in /workspace WORKDIR /workspace # Copy the entire repository into the image COPY . /workspace # Configure and build OpenPose in CPU-only mode RUN cmake -S . -B build -DCMAKE_BUILD_TYPE=Release -DGPU_MODE=CPU_ONLY -DBUILD_SHARED_LIBS=ON -DWITH_OPENCV_WITH_OPENGL=OFF -DBUILD_PYTHON=OFF \ -DDL_FRAMEWORK=PYTORCH \ -DDOWNLOAD_BODY_25_MODEL=OFF -DDOWNLOAD_BODY_COCO_MODEL=OFF -DDOWNLOAD_BODY_MPI_MODEL=OFF -DDOWNLOAD_FACE_MODEL=OFF -DDOWNLOAD_HAND_MODEL=OFF && \ cmake --build build -j$(nproc) # Default to an interactive shell to inspect the image CMD ["/bin/bash"]
Concerns: COPY . /workspace copies the entire build context; consider adding a .dockerignore to reduce build time and avoid copying unnecessary files., The CMake option -DDL_FRAMEWORK=PYTORCH may not be valid in all OpenPose versions; ensure the OpenPose CMake options align with the version used., FROM image tag 'ubuntu:jammy-20260217' might be non-standard; ensure it exists in the registry used for builds. Smoke [PASS]: test -d /workspace/build Smoke [PASS]: test -f /workspace/build/CMakeCache.txt Smoke [PASS]: test -f /workspace/build/Makefile || test -f /workspace/build/build.ninja