commit b05da49bbfce9e83aecbc88ffe247e9067a3adec Author: Paolo Asperti Date: Tue Feb 27 22:53:37 2024 +0100 initial release diff --git a/.gitea/workflows/build.yaml b/.gitea/workflows/build.yaml new file mode 100644 index 0000000..894fb8b --- /dev/null +++ b/.gitea/workflows/build.yaml @@ -0,0 +1,34 @@ +name: Container Build + +on: + push: + branches: + - main + pull_request: + +jobs: + build-image: + runs-on: ubuntu-latest + container: + image: catthehacker/ubuntu:act-latest + steps: + - uses: actions/checkout@v4 + with: + submodules: true # Fetch Hugo themes (true OR recursive) + fetch-depth: 0 # Fetch all history for .GitInfo and .Lastmod + + - name: Set up QEMU + uses: docker/setup-qemu-action@v3 + + - name: Set up Docker BuildX + uses: docker/setup-buildx-action@v3 + + - name: Build + uses: docker/build-push-action@v4 + with: + context: . + file: ./Dockerfile + platforms: | + linux/amd64 +# linux/arm64 + push: false diff --git a/.gitea/workflows/build_and_push.yaml b/.gitea/workflows/build_and_push.yaml new file mode 100644 index 0000000..199872a --- /dev/null +++ b/.gitea/workflows/build_and_push.yaml @@ -0,0 +1,65 @@ +name: Container Publish + +on: + push: + tags: + - '*' + schedule: + - cron: "0 22 * * *" + +jobs: + build-image: + runs-on: ubuntu-latest + container: + image: catthehacker/ubuntu:act-latest + steps: + - uses: actions/checkout@v4 + with: + submodules: true # Fetch Hugo themes (true OR recursive) + fetch-depth: 0 # Fetch all history for .GitInfo and .Lastmod + + - name: Set up QEMU + uses: docker/setup-qemu-action@v3 + + - name: Set up Docker BuildX + uses: docker/setup-buildx-action@v3 + + - name: Login to registry + uses: docker/login-action@v3 + with: + registry: git.libreschool.org + username: ${{ secrets.REGISTRY_USER }} + password: ${{ secrets.REGISTRY_TOKEN }} + + - name: Build and publish + uses: docker/build-push-action@v4 + with: + context: . + file: ./Dockerfile + platforms: | + linux/amd64 +# linux/arm64 + load: true + tags: git.libreschool.org/bglug/hugo-extended:latest + + - name: Run Trivy vulnerability scanner + id: scan + uses: aquasecurity/trivy-action@master + with: + image-ref: "git.libreschool.org/bglug/hugo-extended:latest" + format: "json" + output: "trivy-results.json" + + - name: check output + run: if [ $(jq '.Results[0].Vulnerabilities|length' trivy-results.json) -ne "0" ] ; then exit 1 ; fi + + - name: Build and publish + uses: docker/build-push-action@v4 + with: + context: . + file: ./Dockerfile + platforms: | + linux/amd64 +# linux/arm64 + push: true + tags: git.libreschool.org/bglug/hugo-extended:latest diff --git a/.gitea/workflows/vulnscan.yaml b/.gitea/workflows/vulnscan.yaml new file mode 100644 index 0000000..f7e6d65 --- /dev/null +++ b/.gitea/workflows/vulnscan.yaml @@ -0,0 +1,35 @@ +name: Vulnerability Scan + +on: + schedule: + - cron: "0 18 * * *" + +jobs: + scan: + name: Daily Vulnerability Scan + runs-on: ubuntu-latest + container: + image: catthehacker/ubuntu:act-latest + + steps: + - name: Login to registry + uses: docker/login-action@v3 + with: + registry: git.libreschool.org + username: ${{ secrets.REGISTRY_USER }} + password: ${{ secrets.REGISTRY_TOKEN }} + + - name: Pull docker image + run: docker pull git.libreschool.org/bglug/hugo-extended:latest + + - name: Run Trivy vulnerability scanner + id: scan + uses: aquasecurity/trivy-action@master + with: + image-ref: "git.libreschool.org/bglug/hugo-extended:latest" + format: "json" + output: "trivy-results.json" + + # if some vulnerability is found, we fail + - name: check output + run: if [ $(jq '.Results[0].Vulnerabilities|length' trivy-results.json) -ne "0" ] ; then exit 1 ; fi diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..419b39e --- /dev/null +++ b/Dockerfile @@ -0,0 +1,7 @@ +FROM alpine:latest + +RUN \ + apk -U upgrade && \ + apk add hugo + +ENTRYPOINT [ "/usr/bin/hugo" ] diff --git a/README.md b/README.md new file mode 100644 index 0000000..6bb5225 --- /dev/null +++ b/README.md @@ -0,0 +1,7 @@ +# BgLUG hugo extended docker container + +This container image is used to develop and build hugo websites + +```sh +docker run --rm -ti git.libreschool.org/bglug/hugo-extended:latest version +```