| # debian.sh --arch 'arm64' out/ 'trixie' '@1793059200' |
| ARG VERSION=1.2.6 |
| ARG AGENT_VERSION=1.2.6 |
| ARG GIT_COMMIT=33795a5e3abe438ad6480e819113cfd76eb0b97c |
| ARG PG_MAJOR=17 |
| ARG TIMESCALEDB_PKG_VERSION=2.30.2~debian13-1711 |
| ARG TIMESCALEDB_MIN_VERSION=2.30.2 |
| ARG S6_OVERLAY_VERSION=3.2.3.2 |
| LABEL org.opencontainers.image.title=IfDown org.opencontainers.image.description=Self-hosted monitoring: server, web UI, agents, built-in TimescaleDB org.opencontainers.image.source=https://git.menzel.center/menzeljonas/ifdown org.opencontainers.image.version=1.2.6 org.opencontainers.image.revision=33795a5e3abe438ad6480e819113cfd76eb0b97c |
| ENV LANG=C.UTF-8 DEBIAN_FRONTEND=noninteractive |
| RUN |7 VERSION=1.2.6 AGENT_VERSION=1.2.6 GIT_COMMIT=33795a5e3abe438ad6480e819113cfd76eb0b97c PG_MAJOR=17 TIMESCALEDB_PKG_VERSION=2.30.2~debian13-1711 TIMESCALEDB_MIN_VERSION=2.30.2 S6_OVERLAY_VERSION=3.2.3.2 /bin/sh -c set -eux; apt-get update; apt-get install -y --no-install-recommends ca-certificates curl gnupg xz-utils tzdata python3.13 postgresql-common fonts-inter monitoring-plugins-basic; sed -ri 's/#?\s*create_main_cluster.*/create_main_cluster = false/' /etc/postgresql-common/createcluster.conf; curl -fsSL https://packagecloud.io/timescale/timescaledb/gpgkey | gpg --dearmor -o /usr/share/keyrings/timescaledb.gpg; echo "deb [signed-by=/usr/share/keyrings/timescaledb.gpg] https://packagecloud.io/timescale/timescaledb/debian/ trixie main" > /etc/apt/sources.list.d/timescaledb.list; apt-get update; apt-get install -y --no-install-recommends postgresql-${PG_MAJOR} postgresql-client-${PG_MAJOR} timescaledb-2-postgresql-${PG_MAJOR}=${TIMESCALEDB_PKG_VERSION} timescaledb-2-loader-postgresql-${PG_MAJOR}=${TIMESCALEDB_PKG_VERSION}; apt-mark hold timescaledb-2-postgresql-${PG_MAJOR} timescaledb-2-loader-postgresql-${PG_MAJOR}; cd /usr/lib/postgresql/${PG_MAJOR}/lib; for f in timescaledb-[0-9]*.so timescaledb-tsl-[0-9]*.so; do v=${f%.so}; v=${v##*-}; [ "$(printf '%s\n%s\n' "$v" "${TIMESCALEDB_MIN_VERSION}" | sort -V | head -1)" = "${TIMESCALEDB_MIN_VERSION}" ] || rm -f "$f"; done; rm -rf /usr/lib/postgresql/${PG_MAJOR}/lib/bitcode; cd /; apt-get purge -y --auto-remove gnupg; rm -rf /var/lib/apt/lists/* /var/cache/apt/* /usr/share/doc/* /usr/share/man/* # buildkit |
| ARG TARGETARCH=arm64 |
| ADD https://github.com/just-containers/s6-overlay/releases/download/v3.2.3.2/s6-overlay-noarch.tar.xz /tmp/ # buildkit |
| ADD https://github.com/just-containers/s6-overlay/releases/download/v3.2.3.2/s6-overlay-x86_64.tar.xz /tmp/ # buildkit |
| ADD https://github.com/just-containers/s6-overlay/releases/download/v3.2.3.2/s6-overlay-aarch64.tar.xz /tmp/ # buildkit |
| RUN |8 VERSION=1.2.6 AGENT_VERSION=1.2.6 GIT_COMMIT=33795a5e3abe438ad6480e819113cfd76eb0b97c PG_MAJOR=17 TIMESCALEDB_PKG_VERSION=2.30.2~debian13-1711 TIMESCALEDB_MIN_VERSION=2.30.2 S6_OVERLAY_VERSION=3.2.3.2 TARGETARCH=arm64 /bin/sh -c case "${TARGETARCH:-amd64}" in amd64) arch=x86_64 ;; arm64) arch=aarch64 ;; *) echo "unsupported architecture ${TARGETARCH}" >&2; exit 1 ;; esac && tar -C / -Jxpf /tmp/s6-overlay-noarch.tar.xz && tar -C / -Jxpf "/tmp/s6-overlay-${arch}.tar.xz" && rm /tmp/s6-overlay-*.tar.xz # buildkit |
| RUN |8 VERSION=1.2.6 AGENT_VERSION=1.2.6 GIT_COMMIT=33795a5e3abe438ad6480e819113cfd76eb0b97c PG_MAJOR=17 TIMESCALEDB_PKG_VERSION=2.30.2~debian13-1711 TIMESCALEDB_MIN_VERSION=2.30.2 S6_OVERLAY_VERSION=3.2.3.2 TARGETARCH=arm64 /bin/sh -c useradd --uid 1000 --user-group --home-dir /opt/ifdown --no-create-home --shell /usr/sbin/nologin ifdown # buildkit |
| COPY /opt/ifdown/venv /opt/ifdown/venv # buildkit |
| COPY /uv /usr/local/bin/uv # buildkit |
| COPY /src/web/dist /opt/ifdown/web # buildkit |
| COPY /out/ /opt/ifdown/downloads/agent/ # buildkit |
| COPY agent/packaging/install.sh /opt/ifdown/install.sh # buildkit |
| COPY agent/packaging/windows/install.ps1 /opt/ifdown/install.ps1 # buildkit |
| COPY plugins/builtin/ /opt/ifdown/plugins/builtin/ # buildkit |
| COPY docker/s6-rc.d/ /etc/s6-overlay/s6-rc.d/ # buildkit |
| COPY docker/user-bundles.d/ /etc/s6-overlay/user-bundles.d/ # buildkit |
| COPY docker/entrypoint/ /opt/ifdown/bin/ # buildkit |
| RUN |8 VERSION=1.2.6 AGENT_VERSION=1.2.6 GIT_COMMIT=33795a5e3abe438ad6480e819113cfd76eb0b97c PG_MAJOR=17 TIMESCALEDB_PKG_VERSION=2.30.2~debian13-1711 TIMESCALEDB_MIN_VERSION=2.30.2 S6_OVERLAY_VERSION=3.2.3.2 TARGETARCH=arm64 /bin/sh -c ln -s /opt/ifdown/venv/bin/ifdownctl /usr/local/bin/ifdownctl && ln -s "${AGENT_VERSION}" /opt/ifdown/downloads/agent/latest && mkdir -p /data && chown ifdown:ifdown /data # buildkit |
| ENV PATH=/opt/ifdown/venv/bin:/usr/lib/postgresql/17/bin:/command:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin IFDOWN_ROLES=api,ingest,worker,notifier,scheduler S6_BEHAVIOUR_IF_STAGE2_FAILS=2 S6_CMD_WAIT_FOR_SERVICES_MAXTIME=0 S6_SERVICES_GRACETIME=50000 S6_KILL_GRACETIME=5000 S6_VERBOSITY=1 |
| VOLUME [/data] |
| EXPOSE map[8000/tcp:{} 8443/tcp:{}] |
| HEALTHCHECK &{["CMD-SHELL" "curl -fsS http://localhost:8000/readyz >/dev/null || exit 1"] "30s" "5s" "1m30s" "0s" '\x03'} |
| ENTRYPOINT ["/opt/ifdown/bin/entrypoint.sh"] |
| CMD ["all"] |