我正在做一个大学项目,我需要一个gitlab-ci.yml。所以测试我在本地PC上安装docker和gitlab runner的gitlab-ci文件。现在,当我为构建作业运行gitlab runner时,构建失败。原因是,这是一个有很多库依赖项的大项目,有些库在其makefile中有 sudo make install 。
通常当我在本地运行构建(没有gitlab runner)时,在安装步骤中它会要求输入密码以进行安装。但是如何在gitlab runner中运行时实现这一目标?有没有办法让docker容器以root身份运行?
请咨询
答案 0 :(得分:0)
以下是解决问题的方法:
root
用户sudo
因此在构建期间您(脚本)可以执行make install
(请参阅如何配置PAM模块)image/
目录(任何可写的位置,可能是构建目录)并告诉CMake -DCMAKE_INSTALL_PREFIX=<your-build-dir>/image
,然后指向其他项目用于搜索已安装映像中的依赖项。而且您不需要root
就可以了。答案 1 :(得分:0)
有些谷歌搜索并最终使它工作。
在sudo
中运行的docker容器中指定root
将无效,因为sudo
命令不可用。所以我做的是创建一个名为docker
的用户在docker容器中运行并将他添加到sudoers
列表中。然后sudo
命令可用,sudo make install
成功!!