diff options
Diffstat (limited to 'docker/debian-base.dockerfile')
-rw-r--r-- | docker/debian-base.dockerfile | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/docker/debian-base.dockerfile b/docker/debian-base.dockerfile new file mode 100644 index 0000000..a171743 --- /dev/null +++ b/docker/debian-base.dockerfile @@ -0,0 +1,72 @@ +# Download Apprise deb package +FROM node:20-bookworm-slim AS download-apprise +WORKDIR /app +COPY ./extra/download-apprise.mjs ./download-apprise.mjs +RUN apt update && \ + apt --yes --no-install-recommends install curl && \ + npm install cheerio semver && \ + node ./download-apprise.mjs + +# Base Image (Slim) +# If the image changed, the second stage image should be changed too +FROM node:20-bookworm-slim AS base2-slim +ARG TARGETPLATFORM + +# Specify --no-install-recommends to skip unused dependencies, make the base much smaller! +# sqlite3 = for debugging +# iputils-ping = for ping +# util-linux = for setpriv (Should be dropped in 2.0.0?) +# dumb-init = avoid zombie processes (#480) +# curl = for debugging +# ca-certificates = keep the cert up-to-date +# sudo = for start service nscd with non-root user +# nscd = for better DNS caching +RUN apt update && \ + apt --yes --no-install-recommends install \ + sqlite3 \ + ca-certificates \ + iputils-ping \ + util-linux \ + dumb-init \ + curl \ + sudo \ + nscd && \ + rm -rf /var/lib/apt/lists/* && \ + apt --yes autoremove + +# apprise = for notifications (Install from the deb package, as the stable one is too old) (workaround for #4867) +# Switching to testing repo is no longer working, as the testing repo is not bookworm anymore. +# python3-paho-mqtt (#4859) +# TODO: no idea how to delete the deb file after installation as it becomes a layer already +COPY --from=download-apprise /app/apprise.deb ./apprise.deb +RUN apt update && \ + apt --yes --no-install-recommends install ./apprise.deb python3-paho-mqtt && \ + rm -rf /var/lib/apt/lists/* && \ + rm -f apprise.deb && \ + apt --yes autoremove + +# Install cloudflared +RUN curl https://pkg.cloudflare.com/cloudflare-main.gpg --output /usr/share/keyrings/cloudflare-main.gpg && \ + echo 'deb [signed-by=/usr/share/keyrings/cloudflare-main.gpg] https://pkg.cloudflare.com/cloudflared bullseye main' | tee /etc/apt/sources.list.d/cloudflared.list && \ + apt update && \ + apt install --yes --no-install-recommends -t stable cloudflared && \ + cloudflared version && \ + rm -rf /var/lib/apt/lists/* && \ + apt --yes autoremove + +# For nscd +COPY ./docker/etc/nscd.conf /etc/nscd.conf +COPY ./docker/etc/sudoers /etc/sudoers + + +# Full Base Image +# MariaDB, Chromium and fonts +# Make sure to reuse the slim image here. Uncomment the above line if you want to build it from scratch. +# FROM base2-slim AS base2 +FROM louislam/uptime-kuma:base2-slim AS base2 +ENV UPTIME_KUMA_ENABLE_EMBEDDED_MARIADB=1 +RUN apt update && \ + apt --yes --no-install-recommends install chromium fonts-indic fonts-noto fonts-noto-cjk mariadb-server && \ + rm -rf /var/lib/apt/lists/* && \ + apt --yes autoremove && \ + chown -R node:node /var/lib/mysql |