This commit is contained in:
64
Dockerfile
Normal file
64
Dockerfile
Normal file
@@ -0,0 +1,64 @@
|
||||
FROM debian:bookworm-slim
|
||||
LABEL maintainer="docker@ao-it.net"
|
||||
|
||||
## prepare requirements
|
||||
RUN ["bash", "-exo", "pipefail", "-c", "\
|
||||
export DEBIAN_FRONTEND=noninteractive ; \
|
||||
apt update ; \
|
||||
apt install -y wget gnupg python3 python3-mysqldb; \
|
||||
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 webserver
|
||||
RUN ["bash", "-exo", "pipefail", "-c", "\
|
||||
export DEBIAN_FRONTEND=noninteractive ; \
|
||||
apt update ; \
|
||||
apt install -y --no-install-{recommends,suggests} apache2 ca-certificates libapache2-mod-php8.2 libldap-common locales-all php-{imagick,redis} php8.2-{bcmath,bz2,common,curl,dba,enchant,gd,gmp,imap,interbase,intl,ldap,mbstring,mysql,odbc,opcache,pgsql,pspell,readline,snmp,soap,sqlite3,sybase,tidy,xml,xmlrpc,xsl,zip} ; \
|
||||
apt clean all ; \
|
||||
rm -vrf /var/lib/apt/lists/* "]
|
||||
|
||||
|
||||
## install icingaweb2
|
||||
RUN ["bash", "-exo", "pipefail", "-c", "\
|
||||
export DEBIAN_FRONTEND=noninteractive ; \
|
||||
apt update ; \
|
||||
apt install -y icingaweb2 icingadb-web icingacli ; \
|
||||
ln -vs /usr/share/icingaweb2/bin/icingacli /usr/local/bin/ ; \
|
||||
rm -f /etc/apache2/conf-enabled/icingaweb2.conf ; \
|
||||
icingacli setup config webserver apache --path=/ --file=/etc/apache2/conf-enabled/icingaweb2.conf ; \
|
||||
echo 'SetEnvIf X-REMOTE-USER \"(.*)\" REMOTE_USER=$0' > /etc/apache2/conf-enabled/allow-remote-user.conf ; \
|
||||
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/usr/ ; \
|
||||
mv /etc/icingaweb2 /data-init/etc/ ; \
|
||||
mv /usr/share/icingaweb2 /data-init/usr/ ; \
|
||||
ln -vs /data/etc/icingaweb2 /etc/icingaweb2 ; \
|
||||
ln -vs /data/usr/icingaweb2 /usr/share/icingaweb2 ; \
|
||||
"]
|
||||
|
||||
## redirect log
|
||||
RUN ["bash", "-exo", "pipefail", "-c", "\
|
||||
ln -vsf /dev/stdout /var/log/apache2/access.log ; \
|
||||
ln -vsf /dev/stderr /var/log/apache2/error.log ; \
|
||||
ln -vsf /dev/stdout /var/log/apache2/other_vhosts_access.log "]
|
||||
|
||||
EXPOSE 8080
|
||||
|
||||
COPY init.sh /root/init.sh
|
||||
COPY conf_icingaweb2.py /root/conf_icingaweb2.py
|
||||
|
||||
VOLUME ["/data"]
|
||||
WORKDIR /data
|
||||
USER root
|
||||
ENTRYPOINT ["/bin/bash", "/root/init.sh"]
|
||||
CMD ["/usr/sbin/apache2", "-DFOREGROUND"]
|
||||
Reference in New Issue
Block a user