mirror of
https://github.com/vyos/vyos-documentation.git
synced 2025-10-26 08:41:46 +01:00
122 lines
4.7 KiB
ReStructuredText
122 lines
4.7 KiB
ReStructuredText
.. _build:
|
|
|
|
Building VyOS
|
|
=============
|
|
|
|
This will guide you though the process of building a VyOS ISO yourself using
|
|
Docker_ and works best on a fresh installation of Debain 8 (Jessie).
|
|
|
|
.. note:: Starting with VyOS 1.2 the developers have decided to change their
|
|
release model. VyOS is now **free as in speech, but not as in beer**, meaning
|
|
that while VyOS is still an open source project, the release ISO's are no
|
|
longer free and can only be obtained via subscription, or by contributing to
|
|
the community. Since the source code is still public you can build your own
|
|
ISO using the process described here.
|
|
|
|
Installing Docker_ and it's prerequisites
|
|
|
|
.. code-block:: sh
|
|
|
|
$ apt-get update
|
|
$ apt-get install -y apt-transport-https ca-certificates curl \
|
|
gnupg2 software-properties-common
|
|
$ curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -
|
|
$ add-apt-repository "deb [arch=amd64] \
|
|
https://download.docker.com/linux/debian $(lsb_release -cs) stable"
|
|
$ apt-get update
|
|
$ apt-get install -y docker-ce
|
|
|
|
To be able to use Docker_ you need to add your current system user to the
|
|
``docker`` group by calling: ``usermod -aG docker yourusername``
|
|
|
|
.. note:: It is recommended to use a non-root user from here on out.
|
|
|
|
.. note:: The build process needs to be built on a local file system, building
|
|
on SMB or NFS shares is not supported!
|
|
|
|
|
|
Generate the container
|
|
----------------------
|
|
|
|
You can either build the container yourself or fetch a pre-build one from
|
|
Dockerhub. Our Dockerhub organisation (https://hub.docker.com/u/vyos) will
|
|
ensure that the container is always up2date. A rebuild is triggered once the
|
|
container changes (please note this will take 2-3 hours after pushing to
|
|
the vyos-build repository).
|
|
|
|
If you waer fancy pants you can - of course - always build the container
|
|
yourself directly from the source:
|
|
|
|
.. code-block:: sh
|
|
|
|
$ git clone -b crux --single-branch https://github.com/vyos/vyos-build
|
|
$ docker build -t vyos/vyos-build docker
|
|
|
|
.. note: The container is automatically downloaded from Dockerhub if it is not
|
|
found on your local machine when the below command is executed - so no
|
|
worries.
|
|
|
|
.. note: We require one container per build branch, this means that the used
|
|
container in ``crux`` and ``current`` can and will differ once we make the
|
|
move towards Debian (10) Buster.
|
|
|
|
|
|
Build ISO inside container
|
|
--------------------------
|
|
|
|
After generating the container - or fetching it pre-build from DockerHub you
|
|
are all set to invoke yourself a fresh build of a VyOS ISO.
|
|
|
|
.. code-block:: sh
|
|
|
|
$ docker run --rm -it --privileged -v $(pwd):/vyos -w /vyos vyos/vyos-build bash
|
|
vyos_bld@d4220bb519a0:/vyos# ./configure --architecture amd64 \
|
|
--build-by "your@email.tld" \
|
|
--build-type release --version 1.2.0
|
|
vyos_bld@d4220bb519a0:/vyos# sudo make iso
|
|
|
|
To select the container you want to run you need to specify the branch you are
|
|
interested in, this can be easily done by selecting the appropriate container
|
|
image:
|
|
|
|
* For VyOS 1.2 (crux) use ``vyos/vyos-build:crux``
|
|
* For VyOS 1.3 (equuleus) use ``vyos/vyos-build:crux``
|
|
* For our VyOS rolling release you should use ``vyos/vyos-build`` which will
|
|
always refer to the latest image.
|
|
|
|
You may use these options to customize you ISO. You can list yourself all
|
|
options by calling ``./configure --help``:
|
|
|
|
.. code-block:: sh
|
|
|
|
-h, --help show this help message and exit
|
|
--architecture ARCHITECTURE
|
|
Image target architecture (amd64 or i586 or armhf)
|
|
--build-by BUILD_BY Builder identifier (e.g. jrandomhacker@example.net)
|
|
--custom-package CUSTOM_PACKAGES
|
|
Custom packages to install from repositories
|
|
--build-type BUILD_TYPE
|
|
Build type, release or development
|
|
--debian-security-mirror DEBIAN_SECURITY_MIRROR
|
|
Debian security updated mirror
|
|
--version VERSION Version number (release builds only)
|
|
--debian-mirror DEBIAN_MIRROR
|
|
Debian repository mirror for ISO build
|
|
--vyos-mirror VYOS_MIRROR
|
|
VyOS package mirror
|
|
--pbuilder-debian-mirror PBUILDER_DEBIAN_MIRROR
|
|
Debian repository mirror for pbuilder env bootstrap
|
|
--debug Enable debug output
|
|
--custom-apt-entry CUSTOM_APT_ENTRY
|
|
Custom APT entry
|
|
--custom-apt-key CUSTOM_APT_KEY
|
|
Custom APT key file
|
|
|
|
Your freshly built ISO should now be in the build directory. Good luck!*
|
|
|
|
.. note: The process does not differ when building a ``crux`` ISO or ``rolling``
|
|
one. Only make sure you are using the proper Docker container from the branch
|
|
you are trying to build.
|
|
|
|
.. _Docker: https://www.docker.com
|