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

时间:2018-02-09 13:10:20

标签: docker cmake gitlab-ci gitlab-ci-runner

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

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

请咨询

2 个答案:

答案 0 :(得分:0)

以下是解决问题的方法:

  • 将构建设为root用户
  • 设置无密码sudo因此在构建期间您(脚本)可以执行make install(请参阅如何配置PAM模块)
  • 看起来你有一个基于CMake的项目,然后你可以在你的容器中说出image/目录(任何可写的位置,可能是构建目录)并告诉CMake -DCMAKE_INSTALL_PREFIX=<your-build-dir>/image,然后指向其他项目用于搜索已安装映像中的依赖项。而且您不需要root就可以了。

答案 1 :(得分:0)

有些谷歌搜索并最终使它工作。

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