Skip to content

Docker build per the directions does not seem to work anymore #6319

Description

@marcreichman-pfi

OS Platform and Distribution

Linux Ubuntu 24.04 LTS

Compiler version

Docker build

Programming Language and version

Multiple

Installed using virtualenv? pip? Conda?(if python)

No response

MediaPipe version

0.10.35

Bazel version

No response

XCode and Tulsi versions (if iOS)

No response

Android SDK and NDK versions (if android)

No response

Android AAR (if android)

None

OpenCV version (if running on desktop)

No response

Describe the problem

I am unable to build the docker build for 0.10.35, with Python 3.12. My initial goal was to build with Python 3.14, but that required more edits. The command I have run is: docker build --progress=plain -f Dockerfile.manylinux_2_28_x86_64 -t mp_manylinux . --build-arg "PYTHON_BIN=/opt/python/cp312-cp312/bin/python3.12". The diff I needed to even get this far is pasted and I will attach the full build log.

Complete Logs

$ git diff
diff --git a/Dockerfile.manylinux_2_28_x86_64 b/Dockerfile.manylinux_2_28_x86_64
index 2d14d0e8e..a05529d6a 100644
--- a/Dockerfile.manylinux_2_28_x86_64
+++ b/Dockerfile.manylinux_2_28_x86_64
@@ -29,13 +29,13 @@ FROM quay.io/pypa/manylinux_2_28_x86_64
 ARG MEDIAPIPE_DISABLE_GPU=1
 ENV MEDIAPIPE_DISABLE_GPU=${MEDIAPIPE_DISABLE_GPU}

-RUN yum install -y java-11-openjdk-devel zip
+RUN yum install -y java-21-openjdk-devel zip
 WORKDIR /tmp/bazel_build
 ADD https://github.com/bazelbuild/bazel/releases/download/7.4.1/bazel-7.4.1-dist.zip bazel.zip
 RUN unzip bazel.zip
 RUN rm -f bazel.zip
 ENV PATH="/opt/python/cp36-cp36m/bin:${PATH}"
-ENV EXTRA_BAZEL_ARGS="--host_javabase=@local_jdk//:jdk"
+ENV EXTRA_BAZEL_ARGS="--tool_java_runtime_version=local_jdk"
 ENV BAZEL_LINKLIBS=-lm:-lstdc++
 RUN ./compile.sh
 RUN cp /tmp/bazel_build/output/bazel /bin/bazel
@@ -52,8 +52,8 @@ RUN yum install -y mesa-libGL mesa-libGL-devel mesa-libEGL mesa-libEGL-devel
 RUN yum install -y mesa-libGLES-devel

 # Install Java, zip, emacs, and portaudio.
-RUN yum install -y  epel-release && yum install -y java-11-openjdk \
-    java-11-openjdk-devel zip emacs portaudio-devel
+RUN yum install -y  epel-release && yum install -y java-21-openjdk \
+    java-21-openjdk-devel zip emacs portaudio-devel

 # Copy Protobuf Compiler binary
 ARG PROTOC_ZIP=protoc-25.1-linux-x86_64.zip
@@ -90,7 +90,7 @@ RUN echo "build --client_env=CC=/usr/lib/llvm-18/bin/clang++" >> .bazelrc && \
     sed -i "s|bazel_command.append('--define=OPENCV=source')|pass|g" setup.py

 # Apply diff to reduce the number of OpenCV dependencies.
-RUN patch -p1 < mediapipe_python_build.diff
+#RUN patch -p1 < third_party/mediapipe_python_build.diff

 ARG PYTHON_BIN="/opt/python/cp312-cp312/bin/python3.12"
 RUN $PYTHON_BIN -m pip install --upgrade pip setuptools

Main error at the end of the build log:

#35 5731.0 Computing main repo mapping:
#35 5732.1 Computing main repo mapping:
#35 5732.9 Loading:
#35 5732.9 Loading: 0 packages loaded
#35 5734.4 Loading: 0 packages loaded
#35 5734.4     currently loading: mediapipe/tasks/metadata
#35 5740.7 Loading: 0 packages loaded
#35 5740.7     currently loading: mediapipe/tasks/metadata
#35 5742.4 Loading: 0 packages loaded
#35 5742.4     currently loading: mediapipe/tasks/metadata
#35 5748.3 Loading: 0 packages loaded
#35 5748.3     currently loading: mediapipe/tasks/metadata
#35 5749.4 Loading: 0 packages loaded
#35 5749.4     currently loading: mediapipe/tasks/metadata
#35 5755.7 Loading: 0 packages loaded
#35 5755.7     currently loading: mediapipe/tasks/metadata
#35 5757.4 Loading: 0 packages loaded
#35 5757.4     currently loading: mediapipe/tasks/metadata
#35 5763.3 Loading: 0 packages loaded
#35 5763.3     currently loading: mediapipe/tasks/metadata
#35 5764.4 Loading: 0 packages loaded
#35 5764.4     currently loading: mediapipe/tasks/metadata
#35 5765.4 Loading: 0 packages loaded
#35 5765.4     currently loading: mediapipe/tasks/metadata
#35 5768.7 Loading: 0 packages loaded
#35 5768.7     currently loading: mediapipe/tasks/metadata
#35 5770.4 Loading: 0 packages loaded
#35 5770.4     currently loading: mediapipe/tasks/metadata
#35 5776.2 Loading: 0 packages loaded
#35 5776.2     currently loading: mediapipe/tasks/metadata
#35 5777.4 Loading: 0 packages loaded
#35 5777.4     currently loading: mediapipe/tasks/metadata
#35 5779.9 Loading: 0 packages loaded
#35 5779.9     currently loading: mediapipe/tasks/metadata
#35 5781.4 Loading: 0 packages loaded
#35 5781.4     currently loading: mediapipe/tasks/metadata
#35 5783.7 Loading: 0 packages loaded
#35 5783.7     currently loading: mediapipe/tasks/metadata
#35 5784.8 Analyzing: target //mediapipe/tasks/metadata:image_segmenter_metadata_schema_py (1 packages loaded)
#35 5785.7 Analyzing: target //mediapipe/tasks/metadata:image_segmenter_metadata_schema_py (1 packages loaded, 0 targets configured)
#35 5785.8 Analyzing: target //mediapipe/tasks/metadata:image_segmenter_metadata_schema_py (1 packages loaded, 0 targets configured)
#35 5785.8
#35 5787.0 Analyzing: target //mediapipe/tasks/metadata:image_segmenter_metadata_schema_py (54 packages loaded, 13 targets configured)
#35 5787.0
#35 5788.0 Analyzing: target //mediapipe/tasks/metadata:image_segmenter_metadata_schema_py (73 packages loaded, 870 targets configured)
#35 5788.0
#35 5789.1 Analyzing: target //mediapipe/tasks/metadata:image_segmenter_metadata_schema_py (73 packages loaded, 876 targets configured)
#35 5789.1
#35 5790.2 Analyzing: target //mediapipe/tasks/metadata:image_segmenter_metadata_schema_py (73 packages loaded, 876 targets configured)
#35 5790.2
#35 5791.5 Analyzing: target //mediapipe/tasks/metadata:image_segmenter_metadata_schema_py (78 packages loaded, 905 targets configured)
#35 5791.5
#35 5794.2 Analyzing: target //mediapipe/tasks/metadata:image_segmenter_metadata_schema_py (78 packages loaded, 926 targets configured)
#35 5794.2
#35 5794.9 INFO: Analyzed target //mediapipe/tasks/metadata:image_segmenter_metadata_schema_py (81 packages loaded, 2941 targets configured).
#35 5795.2 [55 / 149] Executing genrule @@flatbuffers//:flatbuffer_py_strip_prefix_python_flatbuffers_builder_py; 0s processwrapper-sandbox ... (13 actions, 10 running)
#35 5796.5 [131 / 175] [Sched] Compiling src/binary_annotator.cpp [for tool] ... (41 actions, 12 running)
#35 5799.3 [131 / 175] [Sched] Compiling src/binary_annotator.cpp [for tool] ... (41 actions, 13 running)
#35 5799.3 ERROR: /root/.cache/bazel/_bazel_root/4884d566396e9b67b62185751879ad14/external/flatbuffers/grpc/src/compiler/BUILD.bazel:101:11: Compiling grpc/src/compiler/swift_generator.cc [for tool] failed: (Exit 1): clang-18 failed: error executing CppCompile command (from target @@flatbuffers//grpc/src/compiler:swift_generator) /usr/lib/llvm-18/bin/clang-18 -U_FORTIFY_SOURCE -fstack-protector -Wall -Wthread-safety -Wself-assign -Wunused-but-set-parameter -Wno-free-nonheap-object -fcolor-diagnostics -fno-omit-frame-pointer -g0 ... (remaining 31 arguments skipped)
#35 5799.3
#35 5799.3 Use --sandbox_debug to see verbose messages from the sandbox and retain the sandbox build root for debugging
#35 5799.3 In file included from external/flatbuffers/grpc/src/compiler/swift_generator.cc:26:
#35 5799.3 In file included from bazel-out/k8-opt-exec-ST-0465588ec812/bin/external/flatbuffers/_virtual_includes/flatbuffers/flatbuffers/util.h:24:
#35 5799.3 bazel-out/k8-opt-exec-ST-0465588ec812/bin/external/flatbuffers/_virtual_includes/flatbuffers/flatbuffers/stl_emulation.h:56:12: fatal error: 'span' file not found
#35 5799.3    56 |   #include <span>
#35 5799.3       |            ^~~~~~
#35 5799.3 1 error generated.
#35 5799.7 Target //mediapipe/tasks/metadata:image_segmenter_metadata_schema_py failed to build
#35 5799.7 Use --verbose_failures to see the command lines of failed build steps.
#35 5800.5 [172 / 175] checking cached actions
#35 5800.6 INFO: Elapsed time: 5797.935s, Critical Path: 4.23s
#35 5800.6 INFO: 172 processes: 162 internal, 10 processwrapper-sandbox.
#35 5800.6 ERROR: Build did NOT complete successfully
#35 5800.6 Invoking: bazel build --compilation_mode=opt --action_env=PYTHON_BIN_PATH=/opt/python/cp312-cp312/bin/python3.12 //mediapipe/tasks/metadata:image_segmenter_metadata_schema_py --define=MEDIAPIPE_DISABLE_GPU=1
#35 5800.6 Command '['bazel', 'build', '--compilation_mode=opt', '--action_env=PYTHON_BIN_PATH=/opt/python/cp312-cp312/bin/python3.12', '//mediapipe/tasks/metadata:image_segmenter_metadata_schema_py', '--define=MEDIAPIPE_DISABLE_GPU=1']' returned non-zero exit status 1.
#35 ERROR: process "/bin/sh -c ln -sf $PYTHON_BIN /usr/bin/python &&     ln -sf $PYTHON_BIN /usr/bin/python3 &&     $PYTHON_BIN setup.py bdist_wheel clean --all" did not complete successfully: exit code: 1
------
 > [stage-0 30/32] RUN ln -sf /opt/python/cp312-cp312/bin/python3.12 /usr/bin/python &&     ln -sf /opt/python/cp312-cp312/bin/python3.12 /usr/bin/python3 &&     /opt/python/cp312-cp312/bin/python3.12 setup.py bdist_wheel clean --all:
5799.3       |            ^~~~~~
5799.3 1 error generated.
5799.7 Target //mediapipe/tasks/metadata:image_segmenter_metadata_schema_py failed to build
5799.7 Use --verbose_failures to see the command lines of failed build steps.
5800.5 [172 / 175] checking cached actions
5800.6 INFO: Elapsed time: 5797.935s, Critical Path: 4.23s
5800.6 INFO: 172 processes: 162 internal, 10 processwrapper-sandbox.
5800.6 ERROR: Build did NOT complete successfully
5800.6 Invoking: bazel build --compilation_mode=opt --action_env=PYTHON_BIN_PATH=/opt/python/cp312-cp312/bin/python3.12 //mediapipe/tasks/metadata:image_segmenter_metadata_schema_py --define=MEDIAPIPE_DISABLE_GPU=1
5800.6 Command '['bazel', 'build', '--compilation_mode=opt', '--action_env=PYTHON_BIN_PATH=/opt/python/cp312-cp312/bin/python3.12', '//mediapipe/tasks/metadata:image_segmenter_metadata_schema_py', '--define=MEDIAPIPE_DISABLE_GPU=1']' returned non-zero exit status 1.
------
Dockerfile.manylinux_2_28_x86_64:98
--------------------
  97 |     RUN $PYTHON_BIN -m pip install wheel "numpy<2" auditwheel torch pyaudio
  98 | >>> RUN ln -sf $PYTHON_BIN /usr/bin/python && \
  99 | >>>     ln -sf $PYTHON_BIN /usr/bin/python3 && \
 100 | >>>     $PYTHON_BIN setup.py bdist_wheel clean --all
 101 |     RUN auditwheel repair dist/*-cp312-cp312-linux_x86_64.whl
--------------------
ERROR: failed to build: failed to solve: process "/bin/sh -c ln -sf $PYTHON_BIN /usr/bin/python &&     ln -sf $PYTHON_BIN /usr/bin/python3 &&     $PYTHON_BIN setup.py bdist_wheel clean --all" did not complete successfully: exit code: 1

Metadata

Metadata

Assignees

Labels

os:linux-non-armIssues on linux distributions which run on x86-64 architecture. DOES NOT include ARM devices.platform:dockerIssues with dockertype:supportGeneral questions

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions