From 9cb1d676496abdda8906b983d387cf87a4a1b07c Mon Sep 17 00:00:00 2001 From: Juan Escalada Date: Sat, 20 Jun 2026 10:42:22 +0900 Subject: [PATCH 1/2] ci: add GHA cache for dockerfile --- Dockerfile | 32 ++++++++++++++------------------ 1 file changed, 14 insertions(+), 18 deletions(-) diff --git a/Dockerfile b/Dockerfile index 253e4a3d0..153bc622e 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,3 +1,4 @@ +# syntax=docker/dockerfile:1 FROM node:24@sha256:5a593d74b632d1c6f816457477b6819760e13624455d587eef0fa418c8d0777b AS builder USER root @@ -7,7 +8,8 @@ WORKDIR /out COPY package*.json ./ COPY tsconfig.json tsconfig.publish.json proxy.config.json config.schema.json test-e2e.proxy.config.json vite.config.ts index.html index.ts ./ -RUN npm pkg delete scripts.prepare && npm ci --include=dev +# Cache hit if no changes to /root/.npm, miss if dependencies change +RUN --mount=type=cache,target=/root/.npm npm pkg delete scripts.prepare && npm ci --include=dev COPY src/ /out/src/ COPY public/ /out/public/ @@ -19,26 +21,20 @@ RUN npm run build-ui \ FROM node:24@sha256:5a593d74b632d1c6f816457477b6819760e13624455d587eef0fa418c8d0777b AS production -COPY --from=builder /out/package*.json ./ -COPY --from=builder /out/node_modules/ /app/node_modules/ -COPY --from=builder /out/dist/ /app/dist/ -COPY --from=builder /out/build /app/dist/build/ -COPY proxy.config.json config.schema.json ./ +WORKDIR /app +# Install deps and create data dirs once +RUN apt-get update && apt-get install -y --no-install-recommends git tini \ + && rm -rf /var/lib/apt/lists/* \ + && mkdir -p /app/.data /app/.tmp /app/.remote \ + && chown 1000:1000 /app /app/.data /app/.tmp /app/.remote +COPY --chown=1000:1000 --from=builder /out/package*.json ./ +COPY --chown=1000:1000 --from=builder /out/node_modules/ ./node_modules/ +COPY --chown=1000:1000 --from=builder /out/dist/ ./dist/ +COPY --chown=1000:1000 --from=builder /out/build ./dist/build/ +COPY --chown=1000:1000 proxy.config.json config.schema.json ./ COPY docker-entrypoint.sh /docker-entrypoint.sh - -USER root - -RUN apt-get update && apt-get install -y \ - git tini \ - && rm -rf /var/lib/apt/lists/* - -RUN mkdir -p /app/.data /app/.tmp /app/.remote \ - && chown -R 1000:1000 /app - USER 1000 -WORKDIR /app - EXPOSE 8080 8000 8444 ENTRYPOINT ["tini", "--", "/docker-entrypoint.sh"] From 4d25a9457a00c78f70ff9483487fc3f6c563f3dd Mon Sep 17 00:00:00 2001 From: Juan Escalada Date: Sat, 20 Jun 2026 11:56:43 +0900 Subject: [PATCH 2/2] ci: add GHA cache to docker-publish.yml --- .github/workflows/docker-publish.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/docker-publish.yml b/.github/workflows/docker-publish.yml index e6aa156ca..45e4d636e 100644 --- a/.github/workflows/docker-publish.yml +++ b/.github/workflows/docker-publish.yml @@ -53,3 +53,5 @@ jobs: push: true tags: ${{ steps.tags.outputs.tags }} provenance: true + cache-from: type=gha + cache-to: type=gha,mode=max