feat(release): reduce image size by running autoremove, clean and removing lists (#6267)

This commit is contained in:
Justin Keller
2025-10-27 07:12:53 -05:00
committed by GitHub
parent c3a62f7461
commit 93945606ea
3 changed files with 27 additions and 13 deletions

View File

@@ -19,4 +19,7 @@ RUN apt update && \
curl -sL https://deb.nodesource.com/setup_18.x | bash && \
apt --yes --no-install-recommends install nodejs && \
node ./extra/build-healthcheck.js $TARGETPLATFORM && \
apt --yes remove nodejs
apt --yes remove nodejs && \
apt autoremove -y --purge && \
apt clean && \
rm -rf /var/lib/apt/lists/*

View File

@@ -5,7 +5,10 @@ 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
node ./download-apprise.mjs && \
apt autoremove -y --purge && \
apt clean && \
rm -rf /var/lib/apt/lists/*
# Base Image (Slim)
# If the image changed, the second stage image should be changed too
@@ -31,8 +34,9 @@ RUN apt update && \
curl \
sudo \
nscd && \
rm -rf /var/lib/apt/lists/* && \
apt --yes autoremove
apt autoremove -y --purge && \
apt clean && \
rm -rf /var/lib/apt/lists/*
# 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.
@@ -41,9 +45,10 @@ RUN apt update && \
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
apt autoremove -y --purge && \
apt clean && \
rm -rf /var/lib/apt/lists/*
# Install cloudflared
RUN curl https://pkg.cloudflare.com/cloudflare-main.gpg --output /usr/share/keyrings/cloudflare-main.gpg && \
@@ -51,14 +56,14 @@ RUN curl https://pkg.cloudflare.com/cloudflare-main.gpg --output /usr/share/keyr
apt update && \
apt install --yes --no-install-recommends cloudflared && \
cloudflared version && \
rm -rf /var/lib/apt/lists/* && \
apt --yes autoremove
apt autoremove -y --purge && \
apt clean && \
rm -rf /var/lib/apt/lists/*
# 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.
@@ -67,6 +72,7 @@ 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 && \
apt autoremove -y --purge && \
apt clean && \
rm -rf /var/lib/apt/lists/* && \
apt --yes autoremove && \
chown -R node:node /var/lib/mysql

View File

@@ -70,7 +70,10 @@ RUN apt update \
&& chmod go+r /usr/share/keyrings/githubcli-archive-keyring.gpg \
&& echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main" | tee /etc/apt/sources.list.d/github-cli.list > /dev/null \
&& apt update \
&& apt --yes --no-install-recommends install git
&& apt --yes --no-install-recommends install git \
&& apt autoremove -y --purge \
&& apt clean \
&& rm -rf /var/lib/apt/lists/*
## Empty the directory, because we have to clone the Git repo.
RUN rm -rf ./* && chown node /app
@@ -95,7 +98,10 @@ CMD ["npm", "run", "start-pr-test"]
FROM louislam/uptime-kuma:base2 AS upload-artifact
WORKDIR /
RUN apt update && \
apt --yes install curl file
apt --yes install curl file && \
apt autoremove -y --purge && \
apt clean && \
rm -rf /var/lib/apt/lists/*
COPY --from=build /app /app
@@ -115,4 +121,3 @@ RUN chmod +x /app/extra/upload-github-release-asset.sh
# Dist only
RUN cd /app && tar -zcvf $DIST dist
RUN /app/extra/upload-github-release-asset.sh github_api_token=$GITHUB_TOKEN owner=louislam repo=uptime-kuma tag=$VERSION filename=/app/$DIST