Problem with iocage


#1

I’m fallowing this quick howto https://github.com/iocage/iocage
First step is ok: iocage activate myzpool
Second step: iocage fetch returns me error


fdescfs(5) is not mounted, performance may suffer. Please run:
mount -t fdescfs null /dev/fd
You can also permanently mount it in /etc/fstab with the following entry:
fdescfs /dev/fd fdescfs rw 0 0


Creating myzpool/iocage
Creating myzpool/iocage/download
Creating myzpool/iocage/images
Creating myzpool/iocage/jails
Creating myzpool/iocage/log
Creating myzpool/iocage/releases
Creating myzpool/iocage/templates
Traceback (most recent call last):
File “/usr/local/bin/iocage”, line 10, in
sys.exit(cli())
File “/usr/local/lib/python3.6/site-packages/click/core.py”, line 722, in call
return self.main(*args, **kwargs)
File “/usr/local/lib/python3.6/site-packages/click/core.py”, line 697, in main
rv = self.invoke(ctx)
File “/usr/local/lib/python3.6/site-packages/click/core.py”, line 1066, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File “/usr/local/lib/python3.6/site-packages/click/core.py”, line 895, in invoke
return ctx.invoke(self.callback, **ctx.params)
File “/usr/local/lib/python3.6/site-packages/click/core.py”, line 535, in invoke
return callback(*args, **kwargs)
File “/usr/local/lib/python3.6/site-packages/iocage_cli/fetch.py”, line 129, in cli
ioc.IOCage().fetch(**kwargs)
File “/usr/local/lib/python3.6/site-packages/iocage_lib/iocage.py”, line 113, in init
self.pool = PoolAndDataset().get_pool()
File “/usr/local/lib/python3.6/site-packages/iocage_lib/iocage.py”, line 53, in init
self.pool = ioc_json.IOCJson().json_get_value(“pool”)
File “/usr/local/lib/python3.6/site-packages/iocage_lib/ioc_json.py”, line 872, in init
super().init(location, checking_datasets, silent, callback)
File “/usr/local/lib/python3.6/site-packages/iocage_lib/ioc_json.py”, line 200, in init
self.pool, self.iocroot = self.get_pool_and_iocroot()
File “/usr/local/lib/python3.6/site-packages/iocage_lib/ioc_json.py”, line 348, in get_pool_and_iocroot
return pool, get_iocroot()
File “/usr/local/lib/python3.6/site-packages/iocage_lib/ioc_json.py”, line 346, in get_iocroot
raise RuntimeError(f"Please set a mountpoint on {loc}")
RuntimeError: Please set a mountpoint on myzpool/iocage

Looked at man page, help and googling but i could not find or i dont see any info how to specify that mountpoint…


#2

I found the problem, the answer was in iocage man page:

zfs set mountpoint=/data full-dataset-name in my case it looks like this
zfs set mountpoint=/myzpool/iocage myzpool/iocage


#3

iocage activate <myzpool>
under normal operation iocage activate should create and mount (automagically) the “iocage” dir. on a zpool. One should not need to “set mountpoint” beforehand.
So, there’s an issue somewhere in Trident/FreeBSD 13.0-CURRENT or iocage 1.0 RC 2018/11 pkg, in Trident
?
iocage activate in “iocage-1.0 RELEASE 2018.12” with FreeBSD 12.0-RELEASE works as intended.


#4

Not sure where exactly probably in iocage 1.0


#5

You mean Trident/TrueOS uses iocage 1.0rc and FreeBSD-12.0-RELEASE uses iocage 1.0release?


#6

Yes,

uname -a
FreeBSD trydent 13.0-CURRENT FreeBSD 13.0-CURRENT GENERIC-NODEBUG amd64
iocage --version
Version 1.0 RC 2018/11

And

uname -a
FreeBSD free 12.0-RELEASE-p2 FreeBSD 12.0-RELEASE-p2 GENERIC amd64
iocage --version
Version 1.0 RELEASE 2018/12


#7

Hmmm. Why current runs older package than release?


#8

ATM, I’m testing iocage in Trident. Other than the issue with "iocage activate" things seem to run ok, after doing "zfs set mountpoint=/myzpool/iocage myzpool/iocage"

I did "iocage fetch" and "iocage create" with couple of jails with 11.2-RELEASE and 12.0-RELEASE - bbl to complain, if somehing else fails in iocage :slight_smile:


#9

I did not notice anything, seems that everything works in auto mode except activate and mountpoint.


#10

They? have made iocage pkg, most likely before its source got updated.
Trident/TrueOS/FreeBSD-13.0 CURRENT is not an upstream of FreeBSD-12.0 RELEASE, only a fork of latest FreeBSD :wink:
The latest iocage is in:
https://www.freshports.org/sysutils/iocage/
So, it could be made from source in Trident :slight_smile:


#11

Ok thanks :grinning: