【问题标题】:How to install conan inside docker and use如何在docker内部安装conan并使用
【发布时间】:2022-05-02 17:40:43
【问题描述】:

我正在尝试通过将柯南安装在 Docker 中并使用该 docker 来使用它。同样,我确实喜欢 将这些行包含在 Dockerfile 中

RUN apt-get install -y python3-pip
RUN sudo python3 -m pip install conan

在启动 docker 容器后,我的 CMakeFile.txt 中有这些行

conan_cmake_run(
    REQUIRES
    ${CONAN_PACKAGES})

${CONAN_PACKAGES} 是构建我的项目所必需的。运行 cmakefile 时出现此错误

-- Conan: Automatic detection of conan settings from cmake
-- Conan: Settings= -s;build_type=Debug;-s;compiler=gcc;-s;compiler.version=8;-s;compiler.libcxx=libstdc++11
-- Conan: checking conan executable
-- Conan: Found program /usr/bin/conan
-- Conan: Version found 
-- Conan executing: /usr/bin/conan install . -s build_type=Debug -s compiler=gcc -s compiler.version=8 -s compiler.libcxx=libstdc++11 -g=cmake
CMake Error at cmake/conan.cmake:402 (message):
  Conan install failed='No such file or directory'
Call Stack (most recent call first):
  cmake/conan.cmake:497 (conan_cmake_install)
  CMakeLists.txt:17 (conan_cmake_run)


-- Configuring incomplete, errors occurred!

添加 conan_remote 工作正常。 但是在创建 docker 容器后,在 docker 中执行这些行后,问题就解决了

pip install conan
sudo ln -s ~/.local/bin/conan /usr/bin/conan

随着我对柯南的初步了解,我意识到它正在寻找用户级别的安装。但在 docker 中,一切都以 root 身份安装。 有人可以帮忙解决这个问题吗? 我正在使用这个版本的柯南:https://github.com/conan-io/cmake-conan/tree/release/0.15

【问题讨论】:

  • 我建议你使用官方的柯南 docker 镜像:hub.docker.com/u/conanio。它们按编译器版本提供,例如,conanio/gcc10。存储库就是这个,如果你想看一下食谱:github.com/conan-io/conan-docker-tools BTW,不要默认使用 root 用户,而是创建一个非 root 用户。为什么?安全漏洞,所有应用程序都将以 root 身份运行,包括可能的恶意软件。
  • @uilianries 感谢您的建议。但是,如果需要,使用现有的 Dockerfile 并添加包是有限制的。我们也在 docker 中创建一个用户。
  • 所以我建议你阅读 Github 中的 Dockerfile 作为示例。使用 pyenv 进行 python 安装,因此您可以保持安装特定版本,而不取决于您的发行版中可用的内容。还有一点,首先你使用了python3 -m pip install,但是在你刚刚执行了pip install之后。我不确定它们是否是同一个 pip,第二个命令可能是 python 2.7。我建议你使用 pip3 以防万一,并检查 pip --version 以防万一。

标签: docker cmake conan


【解决方案1】:

在dockerfile里面 而不是

RUN sudo python3 -m pip install conan

试试这个:

RUN pip install conan

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-12
    • 2019-12-11
    • 2014-08-16
    • 2018-12-16
    • 1970-01-01
    相关资源
    最近更新 更多