我想在chroot中自动化构建:
sudo chroot mychroot
apt-get install git build-essential make -y
git clone myrepo
cd myrepo/src
make
从这个线程看来,我在Manage Jenkins中的配置 - >配置系统应该是:
Name: trusty
Tool: pbuilder
Advanced configuration: checked
Additional arguments: --distribution trusty --debootstrapopts --variant=buildd
Shell command:
Repositories:
Name: universe
Repository URL: deb http://us.archive.ubuntu.com/ubuntu/ trusty universe
Keyfile URL: http://archive.ubuntu.com/ubuntu/project/ubuntu-archive-keyring.gpg
我已将jenkins添加到/etc/sudoers
文件中,如issue中所述。
任何人都可以分享他们的配置吗? wiki很棒,但我觉得有点缺乏:
什么是described here正是我想要的:
Creates a new debootstrap-based chroot.
Installs build-essential, mercurial, etc.
Fetches the shource.
Runs make.
Copies the files produced in ./binary-out/ to a safe location.
Cleans up.
答案 0 :(得分:2)
如果适合提前准备chroot(比如所有作业使用相同的配置),那么通过对slave上的/ etc / ssh / sshd_config使用以下配置,可以在SSH从站上轻松实现所需的功能:
Match User jenkins
ChrootDirectory /var/chroot/
X11Forwarding no
AllowTcpForwarding no
当Jenkins通过SSH登录到奴隶以执行构建时,他将自动被扔进chroot而无需在构建魔法发生之前将Jenkins添加到sudoers,创建chroot并安装依赖项。 / p>
如果Jenkins总是在机器上的同一个chroot中,这是一个更简单的,更不用说容易出错的路线了。