blob: 34e1dfba3e1197e1a01bed6d9b43b9cc84a6d910 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
|
.. _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
|