From 8283e6819f7a21777cae200a38fa19c08ce82b4b Mon Sep 17 00:00:00 2001 From: Joe Carstairs Date: Fri, 20 Mar 2026 09:42:06 +0000 Subject: [PATCH 1/5] apk del in capsule/Dockerfile to cut layer size --- capsule/Dockerfile | 2 ++ 1 file changed, 2 insertions(+) diff --git a/capsule/Dockerfile b/capsule/Dockerfile index c5912df..231860e 100644 --- a/capsule/Dockerfile +++ b/capsule/Dockerfile @@ -2,6 +2,7 @@ FROM alpine:3.23 AS agate RUN apk --update --no-cache add rust cargo \ && wget -O - https://github.com/mbrubeck/agate/archive/refs/tags/v3.3.20.tar.gz | tar -xz \ && cargo install --path agate-3.3.20/ \ + && apk del rust cargo \ && rm -rf agate-3.3.20 agate-target FROM alpine:3.23 AS comitium @@ -9,6 +10,7 @@ RUN apk --no-cache add make go scdoc RUN wget -O - https://git.sr.ht/~nytpu/comitium/archive/v1.8.2.tar.gz | tar -xz \ && make --directory=comitium-v1.8.2 \ && mv comitium-v1.8.2/build/comitium /usr/local/bin/comitium \ + && apk del make go scdoc \ && rm -rf comitium-v1.8.2 FROM alpine:3.23 AS final From 91bf7c72529f95e399ea9b578bfca953280400aa Mon Sep 17 00:00:00 2001 From: Joe Carstairs Date: Fri, 20 Mar 2026 09:42:50 +0000 Subject: [PATCH 2/5] corrects COPY lines in capsule/Dockerfile --- capsule/Dockerfile | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/capsule/Dockerfile b/capsule/Dockerfile index 231860e..b765ec3 100644 --- a/capsule/Dockerfile +++ b/capsule/Dockerfile @@ -26,13 +26,15 @@ RUN apk --no-cache add gcc # Dependency for agate COPY --from=agate /root/.cargo/bin/agate /usr/local/bin/agate COPY --from=comitium /usr/local/bin/comitium /usr/local/bin/comitium -COPY content comitium-data feeds.txt ./ +COPY comitium-data comitium-data +COPY feeds.txt feeds.txt RUN while read feed; do \ comitium add --data comitium-data/ "$feed"; \ done Date: Fri, 20 Mar 2026 09:43:36 +0000 Subject: [PATCH 3/5] links comitium output to capsule content instead of copying --- capsule/Dockerfile | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/capsule/Dockerfile b/capsule/Dockerfile index b765ec3..a9295e9 100644 --- a/capsule/Dockerfile +++ b/capsule/Dockerfile @@ -18,7 +18,7 @@ RUN mkdir -p /var/app/content WORKDIR /var/app COPY .certificates .certificates RUN crontab -l > crontab.tmp \ - && echo "0 */6 * * * /usr/local/bin/comitium refresh --data /var/app/comitium-data && cp /var/app/comitium-data/feed.gmi /var/app/content/feed.gmi" >> crontab.tmp \ + && echo "0 */6 * * * /usr/local/bin/comitium refresh --data /var/app/comitium-data" >> crontab.tmp \ && crontab crontab.tmp \ && rm crontab.tmp @@ -32,8 +32,8 @@ RUN while read feed; do \ comitium add --data comitium-data/ "$feed"; \ done Date: Fri, 20 Mar 2026 09:47:02 +0000 Subject: [PATCH 4/5] Uses node:lts-alpine3.22 instead of 3.23, which does not exist right now --- website/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/Dockerfile b/website/Dockerfile index 1d8b139..f8c738c 100644 --- a/website/Dockerfile +++ b/website/Dockerfile @@ -1,4 +1,4 @@ -FROM node:lts-alpine3.23 AS runtime +FROM node:lts-alpine3.22 AS runtime WORKDIR /app COPY package.json package-lock.json ./ From 0d140692721f36c129c445a5874bab64170967d1 Mon Sep 17 00:00:00 2001 From: Joe Carstairs Date: Sat, 21 Mar 2026 22:26:35 +0000 Subject: [PATCH 5/5] attempt slightly smaller layer sizes for website/Dockerfile --- website/Dockerfile | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/website/Dockerfile b/website/Dockerfile index f8c738c..18343db 100644 --- a/website/Dockerfile +++ b/website/Dockerfile @@ -1,4 +1,4 @@ -FROM node:lts-alpine3.22 AS runtime +FROM node:lts-alpine3.22 AS build WORKDIR /app COPY package.json package-lock.json ./ @@ -12,11 +12,18 @@ RUN mkdir -p "$(dirname "$(echo "$ASTRO_DB_REMOTE_URL" | cut -d':' -f 2)")" RUN npm run astro db push COPY . . -RUN npm run build +RUN npm run build && rm -rf public src + +FROM node:lts-alpine3.22 AS final +WORKDIR /app ENV HOST=0.0.0.0 ENV PORT=4321 +EXPOSE 4321 ENV MAX_DAILY_EMAILS=100 -EXPOSE 4321 -CMD ["node", "./dist/server/entry.mjs"] +COPY --from=build /app/node_modules node_modules +COPY --from=build /app/db.sqlite db.sqlite +COPY --from=build /app/dist/ . + +CMD ["node", "./server/entry.mjs"]