maven 以非root用户身份运行gitlab-ci管道作业

3phpmpom  于 2023-05-06  发布在  Maven
关注(0)|答案(4)|浏览(301)

我有一个mvn项目,必须以非root用户的身份构建,但默认情况下,gitlab-ci允许runner以root用户的身份运行。我通过设置gitlab-ci.yml文件来使用gitlab.com runner。我试着创建一个用户,然后像这样切换到它:

$ useradd ***
$ su -***
$ whoami
root

它还是说我是根。我该如何解决这个问题?

cwxwcias

cwxwcias1#

您可以使用sudo轻松实现这一点,例如,摘录自my .gitlab-ci.yml:

script:
    - useradd -d /builds/{GITLAB_USER} -g users -M -N builder
    - chown -R builder:users ..
    - |     
      sudo -H -i -u builder sh -e -x << EOS                                                                                                                                                                                                                       
      umask 0077                                                                                                                                                                                                                                               
      export CONTINUOUS_INTEGRATION_SYSTEM="gitlab" TIMESTAMP=`date +%Y%m%d%H%M%S` DEFAULT_TARGET="debug"                                                                                                                                                      
      export PREFIX="\${HOME}/usr" SYSCONFDIR="\${HOME}/etc/conf" LOCALSTATEDIR="\${HOME}/var"                                                                                                                                                                 
      cd my-project                                                                                                                                                                                                                                                  
      make install                                                                                                                                                                                                                                             
      make -C _deploy/debian clean package bundle BUILD_ID="-0{other}\${TIMESTAMP}"                                                                                                                                                                        
      EOS

其中{GITLAB_USER}是您的实际gitlab用户。记住在脚本中转义$

cyvaqqii

cyvaqqii2#

只需为正确的用户安装gitlab-runner服务:

gitlab-runner install --working-directory /home/ubuntu --user ubuntu

这里,ubuntu是任意非root用户。

vngu2lb8

vngu2lb83#

sudo gitlab-runner install --working-directory /home/username --user username

你需要root用户才能安装--user标志,这样你才能以非特权用户的身份运行gitlab-runner。

wwwo4jvm

wwwo4jvm4#

有几种方法可以实现这一点。由于gitlab-ci作业只是运行进程的docker容器,实现这一点的一种方法是使用gosu,在那里你可以以非root用户的身份运行进程。以下链接展示了如何使用gosu:

相关问题