[#container-dnf]
= Installing extra container packages

The official OliveTin container image is based on Fedora Linux. Fedora has shown to offer a great mix of stability and support over two decades. The base container image for OliveTin is relatively lightweight, with not many tools installed by default. This keeps the download size small, but you may want to add additional packages.

== Quickstart - using DNF to install additional packages

You can of course create your own container image, but this is probably a lot of work for new users, or people who just want a few extra packages/commands. Instead of creating a whole new container image, you can simply run `microdnf` (the Fodora package manager) to install more commands.

. Start the OliveTin container using one of the methods shown in the xref:install/container.adoc[container installation instructions].

. Then, on the same host that is running the container, spawn a root shell inside the OliveTin container, like this;
+
----
user@host: docker exec -it olivetin -u root /bin/bash
[root@019d08ef95bd /]#
----
+
The important thing here is passing `-u root`. By default, OliveTin does not run as root.

. Once you have a root shell in OliveTin, you can use the Fedora package manager - `microdnf` to install things that you might need. If you are used to Debian's `apt-get` tool, it works in a very similar way;
+
----
[root@019d08ef95bd /]# microdnf install -y nc
----
+
Note that if you upgrade the OliveTin container image, you will need to reinstall these packages.
+
Once you have finished installing these packages, just exit the root shell using `exit`. You don't need to restart the container - and OliveTin does not need to run as root to use most commands.

== See also

* link:https://hub.docker.com/r/jamesread/olivetin[OliveTin container on Docker Hub]
* xref:install/container.adoc[Installing using a container]
* xref:install/docker_compose.adoc[Installing using docker compose]
* xref:install/helm.adoc[Installing on Kubernetes with Helm]
* xref:install/k8s.adoc[Installing on Kubernetes (manually)]
