FROM debian:bookworm-slim LABEL maintainer="docker@ao-it.net" ARG DEBIAN_FRONTEND=noninteractive ## prepare requirements RUN ["bash", "-exo", "pipefail", "-c", "\ apt update ; \ apt install -y wget gnupg ; \ wget -O - https://packages.icinga.com/icinga.key | \ gpg --dearmor -o /usr/share/keyrings/icinga-archive-keyring.gpg ; \ source /etc/os-release ; \ echo \"deb [signed-by=/usr/share/keyrings/icinga-archive-keyring.gpg] https://packages.icinga.com/debian icinga-${VERSION_CODENAME} main\" > /etc/apt/sources.list.d/${VERSION_CODENAME}-icinga.list ; \ echo \"deb-src [signed-by=/usr/share/keyrings/icinga-archive-keyring.gpg] https://packages.icinga.com/debian icinga-${VERSION_CODENAME} main\" >> /etc/apt/sources.list.d/${VERSION_CODENAME}-icinga.list ; \ apt clean all ; \ rm -vrf /var/lib/apt/lists/* "] ## install icinga2 RUN ["bash", "-exo", "pipefail", "-c", "\ apt update ; \ apt install -y icinga2 monitoring-plugins ; \ mkdir -p /run/icinga2 ; \ chown nagios: /run/icinga2 ; \ apt clean all ; \ rm -vrf /var/lib/apt/lists/* "] ## install easysnmp # need for full-features (add maybe if need): libsnmp-dev snmp-mibs-downloader # sed -i 's|main|main non-free|g' $SOURCELIST_FILE ; \ # ARG SOURCELIST_FILE="/etc/apt/sources.list.d/debian.sources" RUN ["bash", "-exo", "pipefail", "-c", "\ apt update ; \ apt-get install -y python3-requests python3-easysnmp python3-nagiosplugin; \ apt clean all ; \ rm -vrf /var/lib/apt/lists/* "] ## create persistend data store RUN ["bash", "-exo", "pipefail", "-c", "\ mkdir -p /data ; \ mkdir -p /data-init/etc/ ; \ mkdir -p /data-init/var/ ; \ mkdir -p /data-init/plugins ; \ mv /etc/icinga2 /data-init/etc/ ; \ mv /var/lib/icinga2 /data-init/var/ ; \ mv /usr/lib/nagios/plugins /data-init/ ; \ ln -vs /data/etc/icinga2 /etc/icinga2 ; \ ln -vs /data/var/icinga2 /var/lib/icinga2 ; \ ln -vs /data/plugins /usr/lib/nagios/plugins "] ## basic aliases RUN ["bash", "-exo", "pipefail", "-c", "\ echo alias icinga2reload=\"'/usr/lib/icinga2/safe-reload /etc/default/icinga2'\" >> /root/.bashrc ; \ echo alias icinga2checkconfig=\"'icinga2 daemon -C -X'\" >> /root/.bashrc "] COPY init.sh /root/init.sh EXPOSE 5665 VOLUME ["/data"] WORKDIR /data USER root ## run init.sh always! ENTRYPOINT [ "bash", "/root/init.sh" ] CMD [ "/usr/sbin/icinga2", "daemon" ]