Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?


Failed to load latest commit information.
Latest commit message
Commit time

Focker 2

- Focker now uses its own service to start the jails on boot. Use:
- focker bootstrap filesystem to create the new necessary filesystem
- (/focker/jailconf). Use scripts/ to migrate your
- jail configs to the new location. Furthermore, you need to place and
- enable scripts/focker_service in /usr/local/etc/rc.d/.

- I oppose totalitarianism, anti-constitutional crimes and crimes against
- Human Rights. If you support forced or effectively forced gene therapy
- (or other medical procedures), digital identity tracking, contact tracing,
- lockdowns and/or abolition of cash, I expressly deny any license to you
- for using this and/or any other software of mine in any way, shape or form.
- Whenever GPLv3 contains a statement conflicting with the above Legal Notice
- the above Legal Notice shall prevail.



to get your facts straight.

To install Focker 2, please read the Installation manual.

For introduction, see Basic Usage Guide or Detailed Intro. For an end-to-end example with description, see the scm-manager example.

Focker underwent a not-so-slow overhaul in the period of June-August 2021 which was concluded by the release of version 2.0. The aim was to make the code more structured, have better abstractions/more reusability and to lay foundations for the future development. Consequently, three major objectives have been achieved:

  • API - new abstractions constitute a framework which makes Focker as easy to use in custom code as in the command line,
  • Configurability - at the same time the way Focker's configuration is passed around has been remade, allowing to pass any and all Focker parameters either on the command line OR via environment variables OR by system/user-specific configuration files - /etc/focker.conf, /usr/local/etc/focker.conf and ~/focker.conf,
  • Plugins system - the native Focker command modules (image, jail, compose) have become plugins themselves and the rule now is to implement every new block of functionality as a plugin on top of the slim and robust core.

Three important mechanisms have changed:

  • Facets - facets and dictionary-based steps are innovations that vastly improve the image recipe writing experience,
  • FEnv (Focker Environment) Variables can be used to parametrize the processes of image and composition building.
  • Bootstrap - bootstrap is now more granular and gives user more control.

Focker 2.0 introduced as well many smaller Improvements:

  • Taking into account the exec.fib setting when running focker jail exec,
  • Allow for bootstrapping images using different versions of FreeBSD not only the current one,
  • Sorting of listing results,
  • Configurable prefix for names in /etc/jail.conf,
  • Configurable location (dataset) for focker objects.
  • Detect usage of volumes by jails when pruning
  • Roundtrip jail.conf parser
  • Automatically create mount destinations if they don't exist
  • Allow to include other Fockerfiles inside of a Fockerfile, as an alternative to the scheme of base images,
  • Make a few more settings configurable, e.g. whether to copy /etc/resolv.conf or not, possibility of static resolv.conf, etc.,

Future development will focus on providing the "Infrastructure as Code" functionality well-known from the Kubernetes (K8s) ecosystem and highly appreciated by the industry.


Focker is a FreeBSD image/jail orchestration tool in the vein of Docker.







No packages published