I run poudriere in a jail on FreeBSD – it really is becoming the thing-to-do with all the cool kids. Everyone’s doing it. It is nifty.
I will provide only the jail configuration, and not any file system configuration. That is left for you. I think these links might be most helpful:
- Using poudriere to create a custom FreeBSD repository for package installation
- Moving poudriere from the host into a jail
In this post:
- FreeBSD 14
- poudriere-3.4.1
The jail configuration
This is what I run with
[15:49 r730-01 dvl ~] % cat /etc/jail.conf.d/pkg01.conf
pkg01 {
#
# start of standard settings for each jail
#
$bridge = "bridge0";
exec.start = "/bin/sh /etc/rc";
exec.stop = "/bin/sh /etc/rc.shutdown";
exec.clean;
mount.devfs;
path = /jails/$name;
allow.raw_sockets;
#securelevel = 2;
host.hostname = "$name.int.unixathome.org";
exec.consolelog="/var/tmp/jail-console-$name.log";
persist;
#
# end of standard settings for each jail
#
allow.mlock; # came in with poudriere upgraded: 3.4.0 -> 3.4.1
allow.chflags;
allow.mount.devfs;
allow.mount.fdescfs;
allow.mount.linprocfs;
allow.mount.nullfs;
allow.mount.procfs;
allow.mount.tmpfs;
allow.mount.zfs=true;
allow.mount=true;
allow.raw_sockets;
allow.socket_af;
children.max=200;
enforce_statfs=1;
exec.created+="zfs jail $name data03/poudriere";
exec.created+="zfs set jailed=on data03/poudriere";
exec.poststart += "jail -m allow.mount.linprocfs=1 name=$name";
host.domainname=none;
sysvmsg=new;
sysvsem=new;
sysvshm=new;
vnet;
# from https://codeberg.org/pkgbase/website/src/branch/main/howto/jails.md
$gw = "10.0.0.1";
$gw6 = "2001:470:[redacted]:0";
$id = "29";
$jepair = "epair${id}b";
$ipaddr = "10.0.0.${id}/24";
$ip6addr = "2001:470:[redacted]:${id}/64";
vnet.interface = "$jepair";
exec.prestart = "ifconfig epair${id} create up";
exec.prestart += "ifconfig epair${id}a up descr vnet-${name}";
exec.prestart += "ifconfig $bridge addm epair${id}a up";
exec.start = "/sbin/ifconfig lo0 127.0.0.1 up";
exec.start += "/sbin/ifconfig epair${id}b ${ipaddr}";
exec.start += "/sbin/ifconfig epair${id}b inet6 ${ip6addr}";
exec.start += "/sbin/route add default ${gw}";
exec.start += "/bin/sh /etc/rc";
exec.prestop = "ifconfig epair${id}b -vnet ${name}";
exec.poststop = "ifconfig $bridge deletem epair${id}a";
exec.poststop += "ifconfig epair${id}a destroy";
}
The filesystems
This is what I have in the jail:
[16:45 pkg01 dan ~] % zfs list NAME USED AVAIL REFER MOUNTPOINT data03 1.62T 5.50T 96K none data03/poudriere 166G 5.50T 96K /usr/local/poudriere data03/poudriere/ccache 17.4M 5.50T 104K /var/ccache data03/poudriere/ccache/ccache.13amd64 208K 5.50T 96K /var/ccache/ccache.13amd64 data03/poudriere/ccache/ccache.amd64 16.4M 5.50T 16.3M /var/ccache/ccache.amd64 data03/poudriere/data 51.5G 5.50T 14.5G /usr/local/poudriere/data data03/poudriere/data/cache 531M 5.50T 162M /usr/local/poudriere/data/cache data03/poudriere/data/cronjob-logs 5.18M 5.50T 1.82M /usr/local/poudriere/data/cronjob-logs data03/poudriere/data/packages 35.9G 5.50T 24.0G /usr/local/poudriere/data/packages data03/poudriere/distfiles 90.2G 5.50T 90.1G /usr/ports/distfiles data03/poudriere/jails 5.46G 5.50T 96K /usr/local/poudriere/jails data03/poudriere/jails/124amd64 1.44G 5.50T 1.44G /usr/local/poudriere/jails/124amd64 data03/poudriere/jails/132amd64 1.42G 5.50T 1.42G /usr/local/poudriere/jails/132amd64 data03/poudriere/jails/132i386 1.21G 5.50T 1.21G /usr/local/poudriere/jails/132i386 data03/poudriere/jails/140amd64 1.39G 5.50T 1.39G /usr/local/poudriere/jails/140amd64 data03/poudriere/ports 19.1G 5.50T 3.25G /usr/local/poudriere/ports data03/poudriere/ports/2022Q3 847M 5.50T 847M /usr/local/poudriere/ports/2022Q3 data03/poudriere/ports/2023Q2 879M 5.50T 879M /usr/local/poudriere/ports/2023Q2 data03/poudriere/ports/default 5.06G 5.50T 2.50G /usr/local/poudriere/ports/default data03/poudriere/ports/main 2.14G 5.50T 1.60G /usr/local/poudriere/ports/main data03/poudriere/ports/testing 6.49G 5.50T 2.54G /usr/local/poudriere/ports/testing data03/poudriere/test 152K 5.50T 96K /usr/local/poudriere/test [16:45 pkg01 dan ~] %
I hope this helps.











