diff --git a/.gitea/workflows/ci.yml b/.gitea/workflows/ci.yml index 05c8de3..f8aa18d 100644 --- a/.gitea/workflows/ci.yml +++ b/.gitea/workflows/ci.yml @@ -53,6 +53,8 @@ jobs: file: src/main/Dockerfile push: true tags: ${{ env.REGISTRY }}/${{ env.IMAGE_PREFIX }}-backend:latest + cache-from: type=registry,ref=${{ env.REGISTRY }}/${{ env.IMAGE_PREFIX }}-backend:buildcache + cache-to: type=registry,ref=${{ env.REGISTRY }}/${{ env.IMAGE_PREFIX }}-backend:buildcache,mode=max - name: Build and push frontend image uses: https://github.com/docker/build-push-action@v6 @@ -61,6 +63,8 @@ jobs: file: frontend/Dockerfile push: true tags: ${{ env.REGISTRY }}/${{ env.IMAGE_PREFIX }}-frontend:latest + cache-from: type=registry,ref=${{ env.REGISTRY }}/${{ env.IMAGE_PREFIX }}-frontend:buildcache + cache-to: type=registry,ref=${{ env.REGISTRY }}/${{ env.IMAGE_PREFIX }}-frontend:buildcache,mode=max - name: Build and push rtmp image uses: https://github.com/docker/build-push-action@v6 @@ -69,11 +73,13 @@ jobs: file: nginx/Dockerfile push: true tags: ${{ env.REGISTRY }}/${{ env.IMAGE_PREFIX }}-rtmp:latest + cache-from: type=registry,ref=${{ env.REGISTRY }}/${{ env.IMAGE_PREFIX }}-rtmp:buildcache + cache-to: type=registry,ref=${{ env.REGISTRY }}/${{ env.IMAGE_PREFIX }}-rtmp:buildcache,mode=max deploy: name: Deploy to server needs: build-and-push - if: github.ref == 'refs/heads/master' + if: gitea.ref == 'refs/heads/master' runs-on: ubuntu-latest steps: diff --git a/frontend/Dockerfile b/frontend/Dockerfile index f7b922a..fdf971e 100644 --- a/frontend/Dockerfile +++ b/frontend/Dockerfile @@ -2,7 +2,7 @@ FROM node:20-alpine WORKDIR /app COPY package*.json ./ -RUN npm ci +RUN --mount=type=cache,target=/root/.npm npm ci COPY . . EXPOSE 5173 diff --git a/nginx/Dockerfile b/nginx/Dockerfile index e88822e..08239a0 100644 --- a/nginx/Dockerfile +++ b/nginx/Dockerfile @@ -1,6 +1,9 @@ FROM tiangolo/nginx-rtmp -RUN apt-get update && apt-get install -y gettext-base && rm -rf /var/lib/apt/lists/* +RUN apt-get update && \ + apt-get install -y --no-install-recommends gettext-base && \ + apt-get clean && \ + rm -rf /var/lib/apt/lists/* COPY default.conf.template /etc/nginx/templates/default.conf.template COPY docker-entrypoint.sh /docker-entrypoint.sh diff --git a/src/main/Dockerfile b/src/main/Dockerfile index 3b0af77..54b5706 100644 --- a/src/main/Dockerfile +++ b/src/main/Dockerfile @@ -2,19 +2,17 @@ FROM maven:3.9.6-eclipse-temurin-21 AS builder WORKDIR /app COPY pom.xml . +RUN --mount=type=cache,target=/root/.m2 mvn dependency:go-offline -B COPY src ./src -RUN mvn clean package -DskipTests - +RUN --mount=type=cache,target=/root/.m2 mvn clean package -DskipTests -B # Run stage -FROM eclipse-temurin:21-jdk - +FROM eclipse-temurin:21-jre # dependencies RUN apt-get update && \ - apt-get install -y ffmpeg && \ + apt-get install -y --no-install-recommends ffmpeg && \ apt-get clean && \ rm -rf /var/lib/apt/lists/* - WORKDIR /app COPY --from=builder /app/target/*.jar app.jar EXPOSE 8080