首页 文章

使用使用docker容器的gitlab-ci runner运行时构建失败

提问于
浏览
0

我正在做一个大学项目,我需要gitlab-ci.yml . 所以测试我在本地PC上安装docker和gitlab runner的gitlab-ci文件 . 现在,当我为构建作业运行gitlab runner时,构建失败 . 原因是,这是一个有很多库依赖项的大项目,有些库在makefile中有 sudo make install .

通常当我在本地运行构建(没有gitlab runner)时,在安装步骤中它会要求输入密码以进行安装 . 但是如何在gitlab runner中运行时实现这一目标?有没有办法让docker容器以root身份运行?

请指教

2 回答

  • 0

    以下是解决问题的方法:

    • make build as root user

    • setup password-less sudo 所以在构建期间你(脚本)可以做 make install (参见如何配置PAM模块)

    • 看起来你有一个基于CMake的项目,那么你可以在你的容器里面说出 image/ 目录(任何可写的位置,可能是构建目录)并告诉CMake -DCMAKE_INSTALL_PREFIX=<your-build-dir>/image ,然后指向其他项目来搜索已安装映像中的依赖项 . 你不需要 root .

  • 0

    做了一些谷歌搜索,最终使它工作 .

    root 中运行的docker容器中指定 sudo 将不起作用,因为 sudo 命令不可用 . 所以我做的是创建一个名为 docker 的用户在docker容器内运行并将他添加到 sudoers 列表中 . 然后 sudo 命令可用, sudo make install 成功!!

相关问题