如何使用gitlab-ci在docker中构建archlinux pkgbuild

时间:2017-04-27 10:52:48

标签: docker archlinux gitlab-ci

我需要将gitlab-ci与docker一起使用,以便在每次提交时自动构建和测试archlinux包。

我的.gitlab-ci.yml

image: pritunl/archlinux

before_script:
  - pacman -Su pkgbuild-introspection --noconfirm

stages:
  - build

makepkg:
  script:
    - makepkg --clean --rmdeps --syncdeps --noarchive --noconfirm --noprogressbar --asdeps
  stage: build

一切都很好,但是当CI调用makepkg命令时,我收到了这个错误:

==> ERROR: Running makepkg as root is not allowed as it can cause permanent, catastrophic damage to your system.

==> ERROR: An unknown error has occurred. Exiting...

我该如何解决?

1 个答案:

答案 0 :(得分:2)

AFAIK,无法以root身份运行makepkg。如果您以root身份运行,makepkg可以将文件放在系统的任何位置,而不仅仅放在$pkgdir所在的包中。这是使用fakeroot停止的,Nearby Search Requestsroot运行时被禁用。

  

假根只是构建目录中的子目录   函数和行为作为系统的根目录。结合在一起   使用fakeroot程序,makepkg创建一个假的根目录,和   使用root将已编译的二进制文件和相关文件安装到其中   作为所有者。

我建议您扩展pritunl/archlinux图片并添加一个简单的用户,仅适用于makepkg操作。