CI: Enable BuildKit cache mounts for faster npm installs
- Add syntax directive for BuildKit cache-mount support - Cache /root/.npm between builds (web + server npm install) - Enable DOCKER_BUILDKIT=1 in CI build step - Remove aggressive builder prune that killed layer cache after each build Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
38fb648e15
commit
bf5b995d7c
2 changed files with 5 additions and 5 deletions
|
|
@ -47,7 +47,7 @@ jobs:
|
||||||
|
|
||||||
- name: Build Docker image
|
- name: Build Docker image
|
||||||
run: |
|
run: |
|
||||||
docker build \
|
DOCKER_BUILDKIT=1 docker build \
|
||||||
--build-arg "VITE_BUILD_CHANNEL=${{ steps.vars.outputs.channel }}" \
|
--build-arg "VITE_BUILD_CHANNEL=${{ steps.vars.outputs.channel }}" \
|
||||||
--build-arg "VITE_APP_VERSION=${{ steps.vars.outputs.version }}" \
|
--build-arg "VITE_APP_VERSION=${{ steps.vars.outputs.version }}" \
|
||||||
-t ${{ env.REGISTRY }}/${{ env.IMAGE }}:${{ steps.vars.outputs.tag }} \
|
-t ${{ env.REGISTRY }}/${{ env.IMAGE }}:${{ steps.vars.outputs.tag }} \
|
||||||
|
|
@ -75,7 +75,6 @@ jobs:
|
||||||
docker rmi "${{ env.REGISTRY }}/${{ env.IMAGE }}:latest" 2>/dev/null || true
|
docker rmi "${{ env.REGISTRY }}/${{ env.IMAGE }}:latest" 2>/dev/null || true
|
||||||
fi
|
fi
|
||||||
docker image prune -f 2>/dev/null || true
|
docker image prune -f 2>/dev/null || true
|
||||||
docker builder prune -f --keep-storage=4GB 2>/dev/null || true
|
|
||||||
|
|
||||||
deploy:
|
deploy:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
|
@ -125,7 +124,6 @@ jobs:
|
||||||
if: always()
|
if: always()
|
||||||
run: |
|
run: |
|
||||||
docker image prune -f 2>/dev/null || true
|
docker image prune -f 2>/dev/null || true
|
||||||
docker builder prune -f --keep-storage=4GB 2>/dev/null || true
|
|
||||||
|
|
||||||
bump-version:
|
bump-version:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,9 @@
|
||||||
|
# syntax=docker/dockerfile:1
|
||||||
|
|
||||||
FROM node:24-slim AS web-build
|
FROM node:24-slim AS web-build
|
||||||
WORKDIR /app/web
|
WORKDIR /app/web
|
||||||
COPY web/package*.json ./
|
COPY web/package*.json ./
|
||||||
RUN npm install --no-audit --no-fund
|
RUN --mount=type=cache,target=/root/.npm npm install --no-audit --no-fund
|
||||||
COPY web/ .
|
COPY web/ .
|
||||||
ARG VITE_BUILD_CHANNEL=stable
|
ARG VITE_BUILD_CHANNEL=stable
|
||||||
ARG VITE_APP_VERSION=dev
|
ARG VITE_APP_VERSION=dev
|
||||||
|
|
@ -13,7 +15,7 @@ FROM node:24-slim AS server-deps
|
||||||
WORKDIR /app/server
|
WORKDIR /app/server
|
||||||
RUN apt-get update && apt-get install -y python3 make g++ && rm -rf /var/lib/apt/lists/*
|
RUN apt-get update && apt-get install -y python3 make g++ && rm -rf /var/lib/apt/lists/*
|
||||||
COPY server/package*.json ./
|
COPY server/package*.json ./
|
||||||
RUN npm install --no-audit --no-fund
|
RUN --mount=type=cache,target=/root/.npm npm install --no-audit --no-fund
|
||||||
|
|
||||||
FROM server-deps AS server-build
|
FROM server-deps AS server-build
|
||||||
COPY server/ .
|
COPY server/ .
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue