Test-me/Dockerfile

68 lines
2.3 KiB
Text
Raw Permalink Normal View History

2025-08-18 18:24:32 +02:00
FROM docker.io/louislam/uptime-kuma:1.23.16-debian@sha256:431fee3be822b04861cf0e35daf4beef6b7cb37391c5f26c3ad6e12ce280fe18 AS app-donor
FROM docker.io/library/node:20.19.1-bookworm-slim@sha256:9513b8d4c59c7c35e76934765add45efb89102d639f945341d7948b168237633
ARG UID=3310
ARG GID=3310
# renovate: datasource=pypi depName=apprise versioning=pep440
ARG APPRISE_VERSION=1.9.3
# renovate: datasource=github-releases depName=cloudflare/cloudflared
ARG CLOUDFLARED_VERSION=2025.4.0
COPY --from=app-donor /app /app
RUN apt-get update -qqy \
# Install Uptime-Kuma dependencies
&& DEBIAN_FRONTEND=noninteractive apt-get install --no-install-recommends -qqy \
python3 \
python3-pip \
python3-cryptography \
python3-six \
python3-yaml \
python3-click \
python3-markdown \
python3-requests \
python3-requests-oauthlib \
sqlite3 \
iputils-ping \
util-linux \
dumb-init \
curl \
ca-certificates \
bash \
&& pip --no-cache-dir install --break-system-packages apprise==${APPRISE_VERSION} \
&& setcap -r /usr/bin/ping \
&& rm -rf /var/lib/apt/lists/* \
\
# Download and install cloudflared
&& ARCH= && dpkgArch="$(dpkg --print-architecture)" \
&& case "${dpkgArch##*-}" in \
amd64) ARCH='amd64';; \
arm64) ARCH='arm64';; \
armhf) ARCH='arm';; \
*) echo "unsupported architecture"; exit 1 ;; \
esac \
&& curl -fsSLo /usr/local/bin/cloudflared https://github.com/cloudflare/cloudflared/releases/download/${CLOUDFLARED_VERSION}/cloudflared-linux-${ARCH} \
&& chmod +x /usr/local/bin/cloudflared \
\
# Setup non-root system account + group
&& addgroup --system --gid ${GID} uptime-kuma || true \
&& adduser --system --disabled-login --ingroup uptime-kuma --no-create-home --home /nonexistent --gecos "uptime-kuma" --shell /bin/false --uid ${UID} uptime-kuma || true \
&& mkdir -p /app/data \
&& chown -R uptime-kuma:0 /app \
&& chmod -R g=u /app \
\
# Smoke Tests
&& set -ex || exit $?; \
cloudflared version; \
apprise --version;
ENV HOME=/app
WORKDIR /app
USER uptime-kuma
EXPOSE 3001
VOLUME ["/app/data"]
CMD ["/usr/bin/dumb-init", "--", "node", "server/server.js"]