Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jenkins如何在docker容器中调用conan?错误:无法执行脚本conan_Jenkins_Cmake_Conan - Fatal编程技术网

jenkins如何在docker容器中调用conan?错误:无法执行脚本conan

jenkins如何在docker容器中调用conan?错误:无法执行脚本conan,jenkins,cmake,conan,Jenkins,Cmake,Conan,使用Docker作为构建环境,我的Jenkins文件启动指定的Docker容器并调用CMake,该容器使用conan触发构建过程,等等。不幸的是,管道失败,输出如下: -- Conan: checking conan executable -- Conan: Found program /usr/bin/conan -- Conan: Version found [148] Failed to execute script conan Traceback (most recent call l

使用Docker作为构建环境,我的Jenkins文件启动指定的Docker容器并调用CMake,该容器使用conan触发构建过程,等等。不幸的是,管道失败,输出如下:

-- Conan: checking conan executable
-- Conan: Found program /usr/bin/conan
-- Conan: Version found [148] Failed to execute script conan
 Traceback (most recent call last):
  File "conan/conans/conan.py", line 11, in <module>
 File "conan/conans/conan.py", line 7, in run
 File "conan/conans/client/command.py", line 2151, in main
 File "conan/conans/client/conan_api.py", line 222, in factory
 File "conan/conans/client/conan_api.py", line 234, in __init__
 File "conan/conans/client/migrations.py", line 26, in __init__
 File "conan/conans/client/cache/cache.py", line 78, in __init__
File "conan/conans/client/cache/cache.py", line 150, in config
  File "conan/conans/util/files.py", line 190, in save
 FileNotFoundError: [Errno 2] No such file or directory: '/.conan/conan.conf'
-- Conan executing: /usr/bin/conan install . -s build_type=Release -s compiler=clang -s compiler.version=10 -s compiler.libcxx=libstdc++11 -g=cmake --build=missing
[176] Failed to execute script conan
 Traceback (most recent call last):

我在Jenkins文件中添加了以下环境变量。那它就行了!。我试图在docker容器中定义env变量,但失败了

  environment {
        CONAN_USER_HOME = "${env.WORKSPACE}/"
        CONAN_NON_INTERACTIVE = 1
    } 

我在Jenkins文件中添加了以下环境变量。那它就行了!。我试图在docker容器中定义env变量,但失败了

  environment {
        CONAN_USER_HOME = "${env.WORKSPACE}/"
        CONAN_NON_INTERACTIVE = 1
    } 

错误消息表示文件
/.conan/conan.conf
不存在。是吗?也许这应该是
~/.conan/conan.conf
?@squareskittles据我所知,jenkins对根目录没有写权限,即使我手动创建了/.conan/conan.conf,conan也无法写它。我不知道怎么处理it@full_steak_developer你在运行哪个docker映像?柯南提供了一些稳定的docker图像:。无论如何,您可以通过传递Conan_USER_HOME()@uilianries来使用自定义Conan文件夹。我正在运行一个自定义映像,我在其中安装了其他工具。我没有明白的一点是:当我在docker容器中附加并运行简单的CMake来构建我的项目时,我作为root用户运行。这里的要点是一些权限。不允许Jenkins用户访问根目录。我想这应该解决了:/@full_steak_developer现在我明白了。默认情况下,Conan将使用home目录放置其文件夹。当您以root身份运行时,我认为应该是/root,但出于某种原因,它使用的是root级别/。无论如何,我建议您使用env var CONAN_USER_HOME提供的替代路径。它可能在/tmp中,因为我认为您的容器是临时的,仅用于构建。否则,例如,您可以尝试/root或/opt。错误消息表示文件
/.conan/conan.conf
不存在。是吗?也许这应该是
~/.conan/conan.conf
?@squareskittles据我所知,jenkins对根目录没有写权限,即使我手动创建了/.conan/conan.conf,conan也无法写它。我不知道怎么处理it@full_steak_developer你在运行哪个docker映像?柯南提供了一些稳定的docker图像:。无论如何,您可以通过传递Conan_USER_HOME()@uilianries来使用自定义Conan文件夹。我正在运行一个自定义映像,我在其中安装了其他工具。我没有明白的一点是:当我在docker容器中附加并运行简单的CMake来构建我的项目时,我作为root用户运行。这里的要点是一些权限。不允许Jenkins用户访问根目录。我想这应该解决了:/@full_steak_developer现在我明白了。默认情况下,Conan将使用home目录放置其文件夹。当您以root身份运行时,我认为应该是/root,但出于某种原因,它使用的是root级别/。无论如何,我建议您使用env var CONAN_USER_HOME提供的替代路径。它可能在/tmp中,因为我认为您的容器是临时的,仅用于构建。否则,您可以尝试/root或/opt,例如。CONAN_USE_ALWAYS_SHORT_路径仅适用于Windows,如果您为Linux创建docker映像,则无效。CONAN_USE_ALWAYS_SHORT_路径仅适用于Windows,如果您为Linux创建docker映像,则无效。