From cb15a68c2d31c0bfe0352c3670d5b05818047735 Mon Sep 17 00:00:00 2001 From: Roger Sikorski Date: Fri, 31 Oct 2025 12:03:30 +0100 Subject: [PATCH] feature/use-buildkit (#11) Reviewed-on: https://gitea.sikorski.cloud/RogerSik/docker-monica/pulls/11 --- .gitea/workflows/build.yaml | 87 +++++++++++++++++++++++++++++++++++++ .gitea/workflows/dev.yaml | 35 --------------- .gitea/workflows/main.yaml | 34 --------------- Dockerfile | 4 +- README.md | 4 +- 5 files changed, 91 insertions(+), 73 deletions(-) create mode 100644 .gitea/workflows/build.yaml delete mode 100644 .gitea/workflows/dev.yaml delete mode 100644 .gitea/workflows/main.yaml diff --git a/.gitea/workflows/build.yaml b/.gitea/workflows/build.yaml new file mode 100644 index 0000000..3acd429 --- /dev/null +++ b/.gitea/workflows/build.yaml @@ -0,0 +1,87 @@ +name: Docker Build Workflow + +on: + push: + +jobs: + dockerfile_lint: + name: Lint Dockerfile + runs-on: ubuntu-22.04 + steps: + - uses: actions/checkout@v4 + - uses: hadolint/hadolint-action@v3.1.0 + with: + dockerfile: Dockerfile + + build: + name: Build and Push Docker Image + runs-on: ubuntu-latest + container: + image: docker:dind + + steps: + - name: Set up nodejs + id: nodejs + shell: sh + run: | + apk add nodejs + + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Set Docker Build Tag + id: set_tag + run: | + # Default Docker tag + DOCKER_TAG="latest" + + # If this is a Git tag, use it + if [[ "${GITHUB_REF}" == refs/tags/* ]]; then + DOCKER_TAG="${GITHUB_REF#refs/tags/}" + fi + + echo "GIT_TAG=$DOCKER_TAG" >> $GITHUB_ENV + + - name: Set up Docker Context for Buildx + id: buildx-context + shell: sh + run: | + docker context use builders || docker context create builders + apk add nodejs + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + with: + version: latest + endpoint: builders + + - name: Login to gitea.sikorski.cloud + uses: docker/login-action@v3 + with: + registry: gitea.sikorski.cloud + username: rogersik + password: ${{ secrets.REGISTRY_PASSWORD }} + + - name: Docker Meta + id: meta + uses: docker/metadata-action@v5 + with: + images: ${{ secrets.REGISTRY_URL }} + flavor: | + latest=false + tags: | + type=sha,prefix=,format=short + type=ref,event=tag + + - name: Build and Push Docker Image + uses: docker/build-push-action@v6 + env: + ACTIONS_RUNTIME_TOKEN: '' + with: + pull: true + push: true + labels: ${{ steps.meta.outputs.labels }} + provenance: false + tags: gitea.sikorski.cloud/rogersik/monica:${{ env.GIT_TAG }} + build-args: | + GIT_TAG=${{ env.GIT_TAG }} diff --git a/.gitea/workflows/dev.yaml b/.gitea/workflows/dev.yaml deleted file mode 100644 index 0105955..0000000 --- a/.gitea/workflows/dev.yaml +++ /dev/null @@ -1,35 +0,0 @@ -name: docker-monica-build development - -on: - push: - branches-ignore: - - main # Läuft auf allen Branches außer `main` - -jobs: - dockerfile_lint: - runs-on: ubuntu-22.04 - steps: - - uses: actions/checkout@v4 - - uses: hadolint/hadolint-action@v3.1.0 - with: - dockerfile: Dockerfile - - build: - needs: dockerfile_lint - runs-on: ubuntu-22.04 - steps: - - uses: actions/checkout@v4 - - name: Clean Branch Name - id: clean_branch_name - run: | - CLEANED_BRANCH_NAME=$(echo "${GITHUB_REF_NAME}" | tr '[:upper:]' '[:lower:]' | tr '/_' '-') - echo "CLEAN_BRANCH_NAME=${CLEANED_BRANCH_NAME}" >> $GITHUB_ENV - - name: Kaniko build - uses: aevea/action-kaniko@v0.12.0 - with: - image: rogersik/monica - registry: gitea.sikorski.cloud - tag: "${{ env.CLEAN_BRANCH_NAME }}" - cache: true - username: rogersik - password: ${{ secrets.REGISTRY_PASSWORD }} diff --git a/.gitea/workflows/main.yaml b/.gitea/workflows/main.yaml deleted file mode 100644 index 2745297..0000000 --- a/.gitea/workflows/main.yaml +++ /dev/null @@ -1,34 +0,0 @@ -name: docker-monica-build main -on: - push: - tags: - - '[0-9]+.*' - -jobs: - dockerfile_lint: - runs-on: ubuntu-22.04 - steps: - - uses: actions/checkout@v4 - - uses: hadolint/hadolint-action@v3.1.0 - with: - dockerfile: Dockerfile - - build: - needs: dockerfile_lint - runs-on: ubuntu-22.04 - steps: - - uses: actions/checkout@v4 - - name: Extract Git Tag - id: get_tag - run: echo "TAG=${GITHUB_REF_NAME}" >> $GITHUB_ENV - - name: Kaniko build - uses: aevea/action-kaniko@v0.12.0 - with: - image: rogersik/monica - registry: gitea.sikorski.cloud - tag: '${{ env.TAG }}' - cache: true - build_args: | - GIT_TAG=${{ env.TAG }} - username: rogersik - password: ${{ secrets.REGISTRY_PASSWORD }} diff --git a/Dockerfile b/Dockerfile index 021d5d5..73a18e6 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,5 +1,7 @@ # https://hub.docker.com/_/monica -FROM monica:$GIT_TAG +# Default to 'latest' if GIT_TAG is not provided +ARG GIT_TAG=latest +FROM monica:${GIT_TAG} RUN \ # Use the default production configuration diff --git a/README.md b/README.md index ffc23a3..b320abf 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,6 @@ # monica docker image -Branch: main [![Build Status](https://drone.sikorski.cloud/api/badges/RogerSik/Docker-monica/status.svg?ref=refs/heads/main)](https://drone.sikorski.cloud/RogerSik/Docker-monica) - This images extends * PHP Upload Limit (50MB) -* supervisord for Cronjobs like E-Mail notifications \ No newline at end of file +* supervisord for Cronjobs like E-Mail notifications