Ошибка установки CMake в Docker-контейнере. Не удалось найти ПРОТОБУФ - PullRequest
1 голос
/ 04 апреля 2019

Привет, я пытаюсь создать образ докера, который работает в openpose.Все идет хорошо, пока мне не нужно скомпилировать исходный код, который я предоставляю ...

Я запускаю Dockerfile ниже, и он выдает следующую ошибку:

CMake Error at /usr/share/cmake-3.5/Modules/FindPackageHandleStandardArgs.cmake:148 (message):
  Could NOT find Protobuf (missing: PROTOBUF_LIBRARY PROTOBUF_INCLUDE_DIR)
Call Stack (most recent call first):
  /usr/share/cmake-3.5/Modules/FindPackageHandleStandardArgs.cmake:388 (_FPHSA_FAILURE_MESSAGE)
  /usr/share/cmake-3.5/Modules/FindProtobuf.cmake:308 (FIND_PACKAGE_HANDLE_STANDARD_ARGS)
  CMakeLists.txt:388 (find_package)

Я пытался сделать следующее: Не удалось найти PROTOBUF Compiler и установить protobuf через apt-get, но он не работал.Это происходит:

After this operation, 2321 kB of additional disk space will be used.
Do you want to continue? [Y/n] Abort.
The command '/bin/sh -c apt-get update && apt-get install protobuf-compiler' returned a non-zero code: 1

это мой Dockerfile:

FROM ubuntu:16.04

RUN apt-get update && apt-get install -y libopencv-dev

WORKDIR src

RUN apt-get update && \
    apt-get upgrade -y && \
    apt-get install -y git

RUN git clone https://github.com/CMU-Perceptual-Computing-Lab/openpose.git

WORKDIR /src/openpose/3rdparty

RUN rm -r caffe
RUN rm -r pybind11

RUN git clone https://github.com/BVLC/caffe.git
RUN git clone https://github.com/pybind/pybind11.git

WORKDIR /src/openpose/build


RUN apt-get update && apt-get -y install cmake
RUN cmake .. -DBUILD_CAFFE=OFF -DGPU_MODE=CPU_ONLY
RUN make
RUN make install

RUN make -j`nproc`

эта проблема возникает в строке RUN cmake ..

Полный журнал ошибкиследующее:

-- The C compiler identification is GNU 5.4.0
-- The CXX compiler identification is GNU 5.4.0
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- GCC detected, adding compile flags
-- Building CPU Only.
-- Building with MKL support.
-- Looking for pthread.h
-- Looking for pthread.h - found
-- Looking for pthread_create
-- Looking for pthread_create - not found
-- Looking for pthread_create in pthreads
-- Looking for pthread_create in pthreads - not found
-- Looking for pthread_create in pthread
-- Looking for pthread_create in pthread - found
-- Found Threads: TRUE  
-- Could NOT find GFlags (missing:  GFLAGS_INCLUDE_DIR GFLAGS_LIBRARY) 
-- Could NOT find Glog (missing:  GLOG_INCLUDE_DIR GLOG_LIBRARY) 
CMake Error at /usr/share/cmake-3.5/Modules/FindPackageHandleStandardArgs.cmake:148 (message):
  Could NOT find Protobuf (missing: PROTOBUF_LIBRARY PROTOBUF_INCLUDE_DIR)
Call Stack (most recent call first):
  /usr/share/cmake-3.5/Modules/FindPackageHandleStandardArgs.cmake:388 (_FPHSA_FAILURE_MESSAGE)
  /usr/share/cmake-3.5/Modules/FindProtobuf.cmake:308 (FIND_PACKAGE_HANDLE_STANDARD_ARGS)
  CMakeLists.txt:388 (find_package)


-- Configuring incomplete, errors occurred!
See also "/src/openpose/build/CMakeFiles/CMakeOutput.log".
See also "/src/openpose/build/CMakeFiles/CMakeError.log".
The command '/bin/sh -c cmake .. -DBUILD_CAFFE=OFF -DGPU_MODE=CPU_ONLY -DBLAS=open' returned a non-zero code: 1

Ответы [ 2 ]

1 голос
/ 04 апреля 2019

В вашем Dockerfile должен быть установлен Protobuf, прежде чем вы попытаетесь выполнить команду cmake.

Эта строка:

RUN apt-get update && apt-get -y install cmake

Должно быть:

RUN apt-get update && apt-get -y install cmake protobuf-compiler

Если есть какие-либо другие отсутствующие зависимости, вам необходимо убедиться, что эти зависимости также установлены перед использованием.

0 голосов
/ 04 апреля 2019

Разобрался:

включил эту строку в начало кода, и она сработала.

RUN apt install -y libprotobuf-dev protobuf-compiler

Многие другие ошибки, подобные этой, произошли ... В большинстве случаев решениебыло идентично, менялось только имя устанавливаемого пакета.

Если кто-то сталкивается с подобными проблемами, вот совет, который я узнал во время этой проблемы.Я использовал Ubuntu 16.04 в качестве «ОС», поэтому спросите, что у Ubuntu было большинство ответов на мои вопросы.

Это кажется довольно очевидным сейчас, но кто-то может столкнуться с этим ...

...