icingadb/doc/02-Installation.md.d/For-Container.md
Jolien Trog 02a0bb94bc
GHA/docs: Containerized Setup
Add a new section to the documentation about installing in containerized
environments. Also, add a GitHub Action that pushes this new section to
Docker Hub to display it as the container README.
2025-05-27 11:25:21 +02:00

2.3 KiB

Installing Icinga DB in Containers

This image integrates Icinga DB into your containerized environment.

Usage

docker network create icinga

docker run --rm -d \
	--network icinga \
	--name redis-icingadb \
	redis

docker run -d \
	--network icinga \
	--name mariadb-icingadb \
	-e MYSQL_RANDOM_ROOT_PASSWORD=1 \
	-e MYSQL_DATABASE=icingadb \
	-e MYSQL_USER=icingadb \
	-e MYSQL_PASSWORD=123456 \
	mariadb

docker run -d \
	--network icinga \
	--restart always \
	--name icingadb \
	-e ICINGADB_REDIS_HOST=redis-icingadb \
	-e ICINGADB_REDIS_PORT=6379 \
	-e ICINGADB_REDIS_PASSWORD=123456 \
	-e ICINGADB_DATABASE_HOST=mariadb-icingadb \
	-e ICINGADB_DATABASE_PORT=3306 \
	-e ICINGADB_DATABASE_DATABASE=icingadb \
	-e ICINGADB_DATABASE_USER=icingadb \
	-e ICINGADB_DATABASE_PASSWORD=123456 \
	icinga/icingadb

The container doesn't need any volumes and takes the environment variables.

Environment Variables

The environment variables consists of the key ICINGADB_DATABASE_ and the configuration option name like HOST in uppercase.

ICINGADB_DATABASE_HOST=mariadb-icingadb

For more options, see the Icinga DB configuration documentation.

Connect via TLS

docker run -d \
	--network icinga \
	--restart always \
	--name icingadb \
	-e ICINGADB_REDIS_HOST=redis-icingadb \
	-e ICINGADB_REDIS_PORT=6379 \
	-e ICINGADB_REDIS_PASSWORD=123456 \
	-e ICINGADB_REDIS_TLS=true \
	-e ICINGADB_REDIS_CERT='[PEM-encoded content or path to a file (in a volume)]' \
	-e ICINGADB_REDIS_KEY='[PEM-encoded content or path to a file (in a volume)]' \
	-e ICINGADB_REDIS_CA='[PEM-encoded content or path to a file (in a volume)]' \
	-e ICINGADB_DATABASE_HOST=mariadb-icingadb \
	-e ICINGADB_DATABASE_PORT=3306 \
	-e ICINGADB_DATABASE_DATABASE=icingadb \
	-e ICINGADB_DATABASE_USER=icingadb \
	-e ICINGADB_DATABASE_PASSWORD=123456 \
	-e ICINGADB_DATABASE_TLS=true \
	-e ICINGADB_DATABASE_CERT='[PEM-encoded content or path to a file (in a volume)]' \
	-e ICINGADB_DATABASE_KEY='[PEM-encoded content or path to a file (in a volume)]' \
	-e ICINGADB_DATABASE_CA='[PEM-encoded content or path to a file (in a volume)]' \
	icinga/icingadb

Build it yourself

git clone https://github.com/Icinga/icingadb.git

docker build -t icingadb --file Containerfile .