mirror of
https://github.com/Icinga/docker-icinga2.git
synced 2026-04-03 03:11:03 +02:00
Rationale: for security reasons include the latest deps, at least in release images. Therefore include them everywhere, so the CI warns early enough.
82 lines
3.0 KiB
Docker
82 lines
3.0 KiB
Docker
# Icinga 2 Docker image | (c) 2020 Icinga GmbH | GPLv2+
|
|
|
|
FROM golang:buster as entrypoint
|
|
|
|
COPY entrypoint /entrypoint
|
|
|
|
WORKDIR /entrypoint
|
|
RUN ["go", "build", "."]
|
|
|
|
|
|
FROM buildpack-deps:scm as clone
|
|
SHELL ["/bin/bash", "-exo", "pipefail", "-c"]
|
|
|
|
RUN git clone --bare https://github.com/lausser/check_mssql_health.git ;\
|
|
git -C check_mssql_health.git archive --prefix=check_mssql_health/ 747af4c3c261790341da164b58d84db9c7fa5480 |tar -x ;\
|
|
git clone --bare https://github.com/lausser/check_nwc_health.git ;\
|
|
git -C check_nwc_health.git archive --prefix=check_nwc_health/ a5295475c9bbd6df9fe7432347f7c5aba16b49df |tar -x ;\
|
|
git clone --bare https://github.com/bucardo/check_postgres.git ;\
|
|
git -C check_postgres.git archive --prefix=check_postgres/ 58de936fdfe4073413340cbd9061aa69099f1680 |tar -x ;\
|
|
git clone --bare https://github.com/matteocorti/check_ssl_cert.git ;\
|
|
git -C check_ssl_cert.git archive --prefix=check_ssl_cert/ 1e72259a9c1cd8c60e229725293c51e03c3ba814 |tar -x ;\
|
|
rm -rf *.git
|
|
|
|
|
|
FROM debian:buster-slim as build
|
|
SHELL ["/bin/bash", "-exo", "pipefail", "-c"]
|
|
|
|
RUN apt-get update ;\
|
|
apt-get install --no-install-{recommends,suggests} -y \
|
|
autoconf automake make ;\
|
|
apt-get clean ;\
|
|
rm -vrf /var/lib/apt/lists/*
|
|
|
|
COPY --from=clone /check_mssql_health /check_mssql_health
|
|
COPY --from=clone /check_nwc_health /check_nwc_health
|
|
COPY --from=clone /check_postgres /check_postgres
|
|
|
|
RUN cd /check_mssql_health ;\
|
|
mkdir bin ;\
|
|
autoconf ;\
|
|
autoreconf ;\
|
|
./configure --libexecdir=/usr/lib/nagios/plugins ;\
|
|
make ;\
|
|
make install "DESTDIR=$(pwd)/bin"
|
|
|
|
RUN cd /check_nwc_health ;\
|
|
mkdir bin ;\
|
|
autoreconf ;\
|
|
./configure --libexecdir=/usr/lib/nagios/plugins ;\
|
|
make ;\
|
|
make install "DESTDIR=$(pwd)/bin"
|
|
|
|
RUN cd /check_postgres ;\
|
|
mkdir bin ;\
|
|
perl Makefile.PL INSTALLSITESCRIPT=/usr/lib/nagios/plugins ;\
|
|
make ;\
|
|
make install "DESTDIR=$(pwd)/bin"
|
|
|
|
|
|
FROM debian:buster-slim
|
|
|
|
RUN ["/bin/bash", "-exo", "pipefail", "-c", "apt-get update; DEBIAN_FRONTEND=noninteractive apt-get install --no-install-{recommends,suggests} -y ca-certificates curl dumb-init libboost-{context,coroutine,date-time,filesystem,program-options,regex,system,thread}1.67 libcap2-bin libedit2 libmariadb3 libmoosex-role-timer-perl libpq5 libssl1.1 mailutils monitoring-plugins msmtp{,-mta} openssh-client openssl; apt-get clean; rm -vrf /var/lib/apt/lists/*"]
|
|
|
|
COPY --from=entrypoint /entrypoint/entrypoint /entrypoint
|
|
|
|
RUN ["adduser", "--system", "--group", "--home", "/var/lib/icinga2", "--disabled-login", "--force-badname", "--no-create-home", "--uid", "5665", "icinga"]
|
|
|
|
COPY --from=build /check_mssql_health/bin/ /
|
|
COPY --from=build /check_nwc_health/bin/ /
|
|
COPY --from=build /check_postgres/bin/ /
|
|
COPY --from=clone /check_ssl_cert/check_ssl_cert /usr/lib/nagios/plugins/check_ssl_cert
|
|
|
|
ENTRYPOINT ["/entrypoint"]
|
|
|
|
COPY icinga2-bin/ /
|
|
|
|
RUN ["install", "-o", "icinga", "-g", "icinga", "-d", "/data"]
|
|
RUN ["bash", "-exo", "pipefail", "-c", "for d in /etc/icinga2 /var/*/icinga2; do mkdir -p $(dirname /data-init$d); mv $d /data-init$d; ln -vs /data$d $d; done"]
|
|
|
|
USER icinga
|
|
CMD ["icinga2", "daemon"]
|