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