infra/ansible/roles/icinga2-container/files/Dockerfile
2025-09-06 10:55:13 -05:00

71 lines
No EOL
2 KiB
Docker

FROM ubuntu:22.04
ENV DEBIAN_FRONTEND=noninteractive
ENV TZ=UTC
# Add Icinga repository
RUN apt-get update && apt-get install -y \
wget \
gnupg \
lsb-release \
ca-certificates \
&& wget -O - https://packages.icinga.com/icinga.key | apt-key add - \
&& echo "deb [signed-by=/usr/share/keyrings/icinga-archive-keyring.gpg] https://packages.icinga.com/ubuntu icinga-$(lsb_release -cs) main" > /etc/apt/sources.list.d/icinga2.list \
&& echo "deb-src [signed-by=/usr/share/keyrings/icinga-archive-keyring.gpg] https://packages.icinga.com/ubuntu icinga-$(lsb_release -cs) main" >> /etc/apt/sources.list.d/icinga2.list \
&& wget -O /usr/share/keyrings/icinga-archive-keyring.gpg https://packages.icinga.com/icinga.key
# Install packages
RUN apt-get update && apt-get install -y \
icinga2 \
icinga2-ido-mysql \
icingaweb2 \
icingacli \
mariadb-client \
apache2 \
libapache2-mod-php \
php-bcmath \
php-curl \
php-gd \
php-intl \
php-ldap \
php-mbstring \
php-mysql \
php-pgsql \
php-soap \
php-xml \
php-zip \
php-imagick \
supervisor \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*
# Enable Apache modules
RUN a2enmod rewrite headers env dir mime
# Configure Apache for IcingaWeb2
COPY icingaweb2.conf /etc/apache2/sites-available/
RUN a2dissite 000-default && a2ensite icingaweb2
# Create directories
RUN mkdir -p /etc/icinga2/pki \
/var/run/icinga2/cmd \
/var/log/icinga2 \
/var/lib/icinga2/api/zones \
/var/cache/icinga2 \
&& chown -R nagios:nagios /etc/icinga2 /var/run/icinga2 /var/log/icinga2 /var/lib/icinga2 /var/cache/icinga2
# Setup volumes
VOLUME ["/etc/icinga2", "/etc/icingaweb2", "/var/lib/icinga2"]
# Expose ports
EXPOSE 80 5665
# Copy supervisord config
COPY supervisord.conf /etc/supervisor/conf.d/supervisord.conf
# Copy startup script
COPY docker-entrypoint.sh /docker-entrypoint.sh
RUN chmod +x /docker-entrypoint.sh
ENTRYPOINT ["/docker-entrypoint.sh"]
CMD ["/usr/bin/supervisord", "-c", "/etc/supervisor/conf.d/supervisord.conf"]