Commit Graph

79 Commits

Author SHA1 Message Date
Donatas Abraitis 3f7cc3b7f5 docker: Do not use pip Python package manager
Alpine Linux gets this with 3.19:

This is already installed with `pytest` via apk package manager.

```
15 78.20 error: externally-managed-environment
15 78.20
15 78.20 × This environment is externally managed
15 78.20 ╰─>
15 78.20     The system-wide python installation should be maintained using the system
15 78.20     package manager (apk) only.
15 78.20
15 78.20     If the package in question is not packaged already (and hence installable via
15 78.20     "apk add py3-somepackage"), please consider installing it inside a virtual
15 78.20     environment, e.g.:
15 78.20
15 78.20     python3 -m venv /path/to/venv
15 78.20     . /path/to/venv/bin/activate
15 78.20     pip install mypackage
15 78.20
15 78.20     To exit the virtual environment, run:
15 78.20
15 78.20     deactivate
15 78.20
15 78.20     The virtual environment is not deleted, and can be re-entered by re-sourcing
15 78.20     the activate file.
15 78.20
15 78.20     To automatically manage virtual environments, consider using pipx (from the
15 78.20     pipx package).
15 78.20
15 78.20 note: If you believe this is a mistake, please contact your Python installation or OS distribution provider. You can override this, at the risk of breaking your Python installation or OS, by passing --break-system-packages.
```

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2024-03-09 09:33:40 +02:00
Donatas Abraitis fd93b7d89a docker: Use Alpine Linux version 3.19
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2024-03-09 09:33:40 +02:00
Donatas Abraitis 3ca01bf1e9 docker: Use libyang 2.1.128 for Alpine builds
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2024-03-09 09:33:00 +02:00
Christian Hopps 6374970cb8 doc: docker: update with new more strict protobuf requirements
Signed-off-by: Christian Hopps <chopps@labn.net>
2024-02-12 06:48:12 -05:00
David Lamparter 444bc5e237 build: update packaging & docs for dir changes
`--sysconfdir` and `--localstatedir` now align with general autoconf
practices.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2024-01-27 19:01:19 +01:00
Christian Hopps c00002d0d0 build: protobuf is required so update building docs
- recommend using libyang 2.1.128 but accept 2.0.0 for now.
- update ubuntu building doc to add GRPC section
- update ubuntu reference docker builds to match grpc doc change

Signed-off-by: Christian Hopps <chopps@labn.net>
2023-12-31 13:51:21 +00:00
Louis Scalbert aee4afcc10 docker: update ubuntu template for exabgp 4
Update ubuntu template for exabgp 4

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
2023-12-14 11:38:39 +01:00
Vincent Jardin aa2e50621b docker: fix /sbin/modprobe missing
kmod is needed in order to get modprobe

Signed-off-by: Vincent Jardin <vjardin@free.fr>
2023-12-09 23:45:22 +00:00
lynnemorrison 98cc2279a3 docker/ubi8-minimal: add protobuf-c runtime dep
FRR's RPM package requires protobuf-c to be installed on the runtime
system, otherwise it will refuse to be installed.

Signed-off-by: Juan Vidal Allende <juan.vidal1@ibm.com>
2023-12-04 17:41:04 -05:00
Konstantin Vasin da694b2e93 docker: fix typos in docs for ubuntu20-ci and ubuntu22-ci
Signed-off-by: Konstantin Vasin <126960927+k-v1@users.noreply.github.com>
2023-11-26 19:21:49 +03:00
Donatas Abraitis 18becdc29e docker: Install the apk packages regardless of the platform
It was hardcoded to x86_64, but we build Alpine images for more platforms, let's
be dynamical here.

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2023-07-31 11:05:15 +03:00
Donatas Abraitis 8456322835 docker: Use libyang 2.1.80 for Alpine builds
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2023-07-20 23:57:34 +03:00
Donatas Abraitis 27083f7885 docker: Move Alpine dependency packages to APKBUILD file
Do not mix APKBUILD and Dockerfile when installing dependencies.

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2023-07-20 22:39:14 +03:00
Donatas Abraitis 3fed088e1b docker: Install protobuf-c-devel for ubi8-minimal
configure: error: in `/src':
configure: error: protobuf requested but protoc-c not found.  Install protobuf-c.
See `config.log' for more details

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2023-07-20 22:35:53 +03:00
Donatas Abraitis 1152259d8d docker: Use Alpine Linux 3.18
It has the newer libyang version 2.1.55, while 3.17 has 2.1.30.

3.19 will have 2.1.80.

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2023-07-20 22:11:03 +03:00
Donatas Abraitis 237e2c62ed docker: Use libyang 2.1.80
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2023-07-20 22:10:19 +03:00
Christian Hopps 055f4997b4 doc: document sqlite3 depend and add to docker build
Signed-off-by: Christian Hopps <chopps@labn.net>
2023-07-06 18:08:15 -04:00
Christian Hopps 3c43eaa7d4 docker: ubuntu-ci 18.04 -> 22.04, topotest parallel run examples
Update the READMEs, and give example of a full parallel topotest run with
result extraction for analyze.py

Signed-off-by: Christian Hopps <chopps@labn.net>
2023-06-09 03:19:20 -04:00
Quentin Young 9213d69499
Merge pull request #12797 from jvidalallende/ubi8_minimal_dockerfile
docker: reduce ubi8 images size by using ubi8-minimal as base
2023-04-12 05:47:38 +00:00
Pushpasis Sarkar 5b08f6f9ea doc: Add documentation for MGMT daemon
This commit adds user documentation for the new MGMT daemon and
new FRR Management Framework.

Co-authored-by: Yash Ranjan <ranjany@vmware.com>
Co-authored-by: Abhinay Ramesh <rabhinay@vmware.com>
Co-authored-by: Ujwal P <ujwalp@vmware.com>
Signed-off-by: Pushpasis Sarkar <pushpasis@gmail.com>
2023-03-21 22:09:10 -04:00
Juan Vidal Allende b964031359 docker: add support for ubi8-minimal
Docker image based on ubi8-minimal are smaller in size than previous
ones built with ubi8 as base. Also, due to proper cleanup of caches, the
final image is about 400MB in size (down from ~630MB using the older
ubi8 builder).

This Dockerfile also uses packages built for RHEL (instead of CentOS),
and updates dependencies so that it can compile latest FRR versions.

Signed-off-by: Juan Vidal Allende <juan.vidal1@ibm.com>
2023-02-20 12:18:56 +01:00
Juan Vidal Allende bb36498aa7 docker: remove support for ubi-8
The builder for docker images based on ubi-8 images is broken, and it
generates docker images that are heavy and contain more artifacts than
they need to.

It also installs RPM packages from CentOS that, although seem to be
compatible with ubi-8, may diverge at some point (remember that CentOS
now does not track RHEL closely).

Signed-off-by: Juan Vidal Allende <juan.vidal1@ibm.com>
2023-02-20 12:18:55 +01:00
Donatas Abraitis 784ca7702d docker: Use Alpine 3.17 as base image
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2022-12-02 15:42:00 +02:00
Donatas Abraitis 7078f9a587 docker: Use Alpine 3.16 image
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2022-11-07 21:23:53 +02:00
Donatas Abraitis 7be59f7b7c docker: Keep and copy .apk files after they are built
For debugging purposes and/or to distribute them somewhere else.

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2022-09-20 23:23:55 +03:00
Quentin Young 0bbc787cd3 docker: use Alpine-provided libyang
looks like libyang(2) is back in the upstream alpine repos, so we can
use that instead

Signed-off-by: Quentin Young <qlyoung@nvidia.com>
2022-07-17 19:14:28 -04:00
Quentin Young d782b117d0 alpine, docker: Update APKBUILD for libyang
Signed-off-by: Quentin Young <qlyoung@nvidia.com>
2022-07-17 19:14:28 -04:00
Donald Sharp f0f993deca
Merge pull request #11270 from opensourcerouting/fix/docker_builds_centos
docker: CentOS/UBI adoptions for librtr 0.8.0
2022-05-24 17:50:34 -04:00
Donatas Abraitis e59e44bacd docker: Use Alpine 3.15 for build
This has librtr 0.8.0, while 3.13 has 0.7.0.

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2022-05-24 18:10:00 +03:00
Donatas Abraitis 8fbc0ab6bb docker: Install systemd-devel for centos7 build
```
error: Failed build dependencies:
	systemd-devel is needed by frr-8.3_git275938094422-01.el7.x86_64
```

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2022-05-24 17:27:41 +03:00
Donatas Abraitis 91dd071e9a docker: Use librtr 0.8.0 for centos/ubi builds
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2022-05-24 17:18:14 +03:00
Donatas Abraitis e27376e492
Merge pull request #10916 from rampxxxx/feat_frr_ubi8_docker
docker: Adding support for ubi-8 images.
2022-03-31 21:18:30 +03:00
Javier Garcia d4e5ceae70 docker: Adding support for ubi-8 images.
- Create frr docker container based in new Red Hat Universal Base
  Images.

- This build a docker container based in ubi-8.
- Need to get the devel packages from centos-8 stream repos.
- Centos-8 stream repos added : base, appstream, powertools and epel

Signed-off-by: Javier Garcia <javier.martin.garcia@ibm.com>
2022-03-31 12:12:38 +02:00
Javier Garcia d4793367e5 docker: Centos-8 dockerfile fix.
- Need to adapt repos to new centos-8 stream.

Signed-off-by: Javier Garcia <javier.martin.garcia@ibm.com>
2022-03-29 15:08:29 +02:00
Stephen Worley 3728cc8e12 docker: update alpine build enable set own version
Add ability to set your own env for the version of the docker
container alpine image. This is useful for applications like GNS3
who pin a specific version to look for when they boot up. When you build
locally to test your code you can just set the version to 0 so you don't
have to update configs/scripts looking for a specific image version.

Also fix a shebang in docker start for alpine.

Signed-off-by: Stephen Worley <sworley@nvidia.com>
2022-01-04 13:14:51 -05:00
Igor Ryzhov 7a53c83a68 docker: remove grpc from Travis CI
Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
2021-10-01 14:04:42 +03:00
Christian Hopps a3cecfb608 docker: update with micronet changes
Signed-off-by: Christian Hopps <chopps@labn.net>
2021-09-04 09:04:46 -04:00
Quentin Young 6793327f48 docker: add expected log functions to alpine docker-start
Some basic functions are required by frrcommon.sh

Signed-off-by: Quentin Young <qlyoung@nvidia.com>
2021-08-30 15:21:32 -04:00
Quentin Young 661d41c183 docker: build libyang2 along with FRR
Alpine images have been broken for some time because libyang2 is not
available in Alpine. This patch updates our Dockerfile to build a
libyang2 APK and install it into the image to satisfy FRR's libyang2
dependency.

Unfortunately, libyang2 erroneously includes an internal header from
glibc, making it dependent on glibc to build. FRR's official Docker
images are based on Alpine, which only offers musl libc. Until libyang2
fixes this problem, the libyang2 source that is installed in this image
is a patched version that is compatible with musl libc and not an
official version.

Signed-off-by: Quentin Young <qlyoung@nvidia.com>
2021-08-30 11:38:01 -04:00
Quentin Young e15106149f
Merge pull request #8508 from opensourcerouting/systemd-no-lib 2021-07-06 14:54:25 +00:00
David Lamparter ab140d61cd build, doc: extricate `--enable-systemd`
Ouch, that is a *lot* of places to update...

Signed-off-by: David Lamparter <equinox@diac24.net>
2021-06-29 17:57:09 +02:00
Donald Lee 4b827e08a1 tests: enable lua script tests in ubuntu-20 ci
Signed-off-by: Donald Lee <dlqs@gmx.com>
2021-06-23 00:58:39 +08:00
Wesley Coakley 7266ad4588
docker: Use tini unilaterally and stop tailing /dev/null
tini is a hyper-minimal PID 0 which spawns a child process (watchfrr.sh
in our case), reaps zombies and forwards signals to the script. Starting
watchfrr.sh directly instead of through the old `tail /dev/null` or
`sleep 365d` helps keep things clean too :)

While tini was previously only used in the Alpine container it is useful
to apply this PID 0 to all containers except the special CI ones.

Fixes: #8788
Signed-off-by: Wesley Coakley <w@wesleycoakley.com>
2021-06-15 22:23:50 -04:00
Christian Hopps deca28a33b tests: add grpc unit test
Test uses staticd which required some C++ header protections.
Additionally, the test also runs in the ubuntu20 docker container as
grpc is supported there by the packaging system.

Signed-off-by: Christian Hopps <chopps@labn.net>
2021-06-06 18:03:17 +00:00
Igor Ryzhov 4b57e2c4f5 docker: fix ubuntu containers
Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
2021-05-27 15:57:03 +03:00
Igor Ryzhov bea8786a1c Revert "build: libyangv2 is mainlined, update"
This partially reverts commit 250335d47c.

Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
2021-05-27 15:56:06 +03:00
Christian Hopps 250335d47c build: libyangv2 is mainlined, update
Signed-off-by: Christian Hopps <chopps@gmail.com>
2021-05-27 06:44:39 -04:00
Christian Hopps af1b88e990 lib: libyang2 add missed conversion
Signed-off-by: Christian Hopps <chopps@labn.net>
2021-05-17 22:13:59 -04:00
Christian Hopps 3bb513c399 lib: adapt to version 2 of libyang
Compile with v2.0.0 tag of `libyang2` branch of:
https://github.com/CESNET/libyang

staticd init load time of 10k routes now 6s vs ly1 time of 150s

Signed-off-by: Christian Hopps <chopps@labn.net>
2021-05-13 16:24:48 -04:00
Mark Stapp fe390fafc5
Merge pull request #8482 from wesleycoakley/docker-prefer-cmd-to-entrypoint
docker: prefer CMD to ENTRYPOINT for flexibility
2021-04-20 11:58:44 -04:00