diff --git a/cicd/docker/Dockerfile.backend b/cicd/docker/Dockerfile.backend index c80f16e..3c6caaa 100644 --- a/cicd/docker/Dockerfile.backend +++ b/cicd/docker/Dockerfile.backend @@ -8,12 +8,14 @@ COPY src/backend/src/Randall.Domain/Randall.Domain.csproj s COPY src/backend/src/Randall.Application/Randall.Application.csproj src/backend/src/Randall.Application/ COPY src/backend/src/Randall.Infrastructure/Randall.Infrastructure.csproj src/backend/src/Randall.Infrastructure/ COPY src/backend/src/Randall.Api/Randall.Api.csproj src/backend/src/Randall.Api/ -RUN dotnet restore "src/backend/src/Randall.Api/Randall.Api.csproj" +RUN --mount=type=cache,id=nuget,target=/root/.nuget/packages \ + dotnet restore "src/backend/src/Randall.Api/Randall.Api.csproj" # Build — copy source only (no bin/obj/db files) COPY src/backend/src/ src/backend/src/ -RUN dotnet publish "src/backend/src/Randall.Api/Randall.Api.csproj" \ - -c Release -o /app/publish +RUN --mount=type=cache,id=nuget,target=/root/.nuget/packages \ + dotnet publish "src/backend/src/Randall.Api/Randall.Api.csproj" \ + -c Release --no-restore -o /app/publish # Runtime stage FROM mcr.microsoft.com/dotnet/aspnet:10.0 AS runtime diff --git a/cicd/docker/Dockerfile.frontend b/cicd/docker/Dockerfile.frontend index ceaf299..fa9d33e 100644 --- a/cicd/docker/Dockerfile.frontend +++ b/cicd/docker/Dockerfile.frontend @@ -4,7 +4,8 @@ WORKDIR /app # Install dependencies — copy lockfiles first to cache the npm layer COPY src/frontend/package.json src/frontend/package-lock.json ./ -RUN npm ci +RUN --mount=type=cache,id=npm,target=/root/.npm \ + npm ci --prefer-offline # Copy source COPY src/frontend/index.html ./ diff --git a/cicd/docker/docker-compose.yml b/cicd/docker/docker-compose.yml index 7bba1de..b440b2e 100644 --- a/cicd/docker/docker-compose.yml +++ b/cicd/docker/docker-compose.yml @@ -1,5 +1,6 @@ services: backend: + image: randall/backend:latest build: context: ../.. dockerfile: cicd/docker/Dockerfile.backend @@ -20,6 +21,7 @@ services: start_period: 10s frontend: + image: randall/frontend:latest build: context: ../.. dockerfile: cicd/docker/Dockerfile.frontend