Nat*_*ger 3 mongo-c-driver docker mongo-cxx-driver
我正在尝试在 Docker 容器中安装 mongocxx 驱动程序,第一步是使用包管理器安装 mongo-c 驱动程序。我精简的 Dockerfile:
FROM phusion/baseimage:latest
RUN apt-get install -y libmongoc-1.0-0
Run Code Online (Sandbox Code Playgroud)
在这一步之后,我应该准备好按照这里的说明安装 cxx 驱动程序:https : //mongodb.github.io/mongo-cxx-driver/mongocxx-v3/installation/
RUN git clone https://github.com/mongodb/mongo-cxx-driver.git --branch releases/stable --depth 1
WORKDIR /mongo-cxx-driver/build
RUN cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local ..
RUN make EP_mnmlstc_core
RUN make && make install
Run Code Online (Sandbox Code Playgroud)
这一直持续到 cmake 步骤失败,无法找到 libbson 包
Step 17/25 : RUN cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local ..
---> Running in ba6033b680bb
-- The CXX compiler identification is GNU 5.4.0
-- 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
-- The C 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
-- Checking for module 'libbson-1.0>=1.5.0'
--
CMake Error at /usr/share/cmake-3.5/Modules/FindPkgConfig.cmake:367 (message):
A required package was not found
Run Code Online (Sandbox Code Playgroud)
如果我尝试使用 pkg-config 搜索 libmongoc-1.0 和 libbson-1.0 软件包,它几乎就像没有从 mongo-c 驱动程序安装任何东西一样。
Step 17/26 : RUN pkg-config --cflags --libs libmongoc-1.0 libbson-1.0
---> Running in 343f3b4feb3b
Package libmongoc-1.0 was not found in the pkg-config search path.
Perhaps you should add the directory containing `libmongoc-1.0.pc'
to the PKG_CONFIG_PATH environment variable
No package 'libmongoc-1.0' found
Package libbson-1.0 was not found in the pkg-config search path.
Perhaps you should add the directory containing `libbson-1.0.pc'
to the PKG_CONFIG_PATH environment variable
No package 'libbson-1.0' found
Run Code Online (Sandbox Code Playgroud)
有没有人有在 Docker 实例中安装的经验?对这里出了什么问题有任何见解吗?
下面适用于构建我的 docker 镜像。
FROM ubuntu:16.04
RUN apt-get -y update \
&& apt-get -y upgrade
RUN apt-get install -y \
openssh-server \
g++ \
cmake \
git
#installing the mongoc dependencies and driver
RUN apt-get install -y \
pkg-config \
libssl-dev \
libsasl2-dev
RUN cd ~ \
&& wget https://github.com/mongodb/mongo-c-driver/releases/download/1.6.2/mongo-c-driver-1.6.2.tar.gz \
&& tar xzf mongo-c-driver-1.6.2.tar.gz \
&& cd mongo-c-driver-1.6.2 \
&& ./configure --disable-automatic-init-and-cleanup \
&& make \
&& make install \
&& cd ~ \
&& rm mongo-c-driver-1.6.2.tar.gz \
&& rm -rf mongo-c-driver-1.6.2
#installing mongocxx driver - connects c++ to mongo
RUN cd ~ \
&& wget https://github.com/mongodb/mongo-cxx-driver/archive/r3.1.1.tar.gz \
&& tar -xzf r3.1.1.tar.gz \
&& cd mongo-cxx-driver-r3.1.1/build \
&& cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local .. \
&& make EP_mnmlstc_core \
&& make \
&& make install \
&& cd ~ \
&& rm r3.1.1.tar.gz \
&& rm -rf mongo-cxx-driver-r3.1.1
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1333 次 |
| 最近记录: |