diff --git a/bonsai/Dockerfile.api b/bonsai/Dockerfile.api index fa9edde..187c820 100644 --- a/bonsai/Dockerfile.api +++ b/bonsai/Dockerfile.api @@ -2,6 +2,7 @@ FROM eclipse-temurin:25-jdk AS builder RUN apt-get update && apt-get install -y git openssh-client && rm -rf /var/lib/apt/lists/* +ARG CACHEBUST RUN --mount=type=secret,id=ssh_key \ --mount=type=cache,target=/root/.gradle \ mkdir -p /root/.ssh && \ diff --git a/bonsai/Dockerfile.webapp b/bonsai/Dockerfile.webapp index b37911a..6f2ae69 100644 --- a/bonsai/Dockerfile.webapp +++ b/bonsai/Dockerfile.webapp @@ -2,6 +2,7 @@ FROM node:22-alpine AS builder RUN apk add --no-cache git openssh +ARG CACHEBUST RUN --mount=type=secret,id=ssh_key \ --mount=type=cache,target=/root/.npm \ mkdir -p /root/.ssh && \ diff --git a/bonsai/README.md b/bonsai/README.md index 9197447..d7f9d88 100644 --- a/bonsai/README.md +++ b/bonsai/README.md @@ -34,13 +34,15 @@ docker compose up -d ## Mise à jour -Pour rebuilder depuis le dernier commit de `main` : +Pour rebuilder depuis le dernier commit de `main` (sans tout reconstruire) : ```bash -docker compose build --no-cache +CACHEBUST=$(date +%s) docker compose build docker compose up -d ``` +`CACHEBUST` invalide uniquement l'étape clone+build. Les couches précédentes (installation des outils, image de base) restent en cache — le build reste rapide. + ## Arrêt ```bash diff --git a/bonsai/docker-compose.yml b/bonsai/docker-compose.yml index 2edaab2..7fe52de 100644 --- a/bonsai/docker-compose.yml +++ b/bonsai/docker-compose.yml @@ -26,6 +26,8 @@ services: dockerfile: Dockerfile.api secrets: - ssh_key + args: + CACHEBUST: ${CACHEBUST:-stable} container_name: bonsai-api restart: unless-stopped depends_on: @@ -58,6 +60,8 @@ services: dockerfile: Dockerfile.webapp secrets: - ssh_key + args: + CACHEBUST: ${CACHEBUST:-stable} container_name: bonsai-webapp restart: unless-stopped depends_on: