This commit is contained in:
2025-07-02 16:19:29 -07:00
parent 3075de6dd9
commit 9929209a06
8 changed files with 210 additions and 35 deletions

View File

@@ -1,44 +1,86 @@
name: docker base image
run-name: ${{ gitea.actor }} is building the docker base image.
on: [push]
# .gitea/workflows/docker-multi-build.yml
name: Build and Push Multi-Arch Docker Images
on:
push:
branches:
- main
paths:
- 'buster/Dockerfile'
- 'bullseye/Dockerfile'
- 'bookworm/Dockerfile'
- 'docker-build/Dockerfile'
- 'buster/**'
- 'bullseye/**'
- 'bookworm/**'
- 'docker-build/**'
jobs:
docker:
runs-on: cth-test
build:
runs-on: ubuntu-latest
steps:
# - name: Install Docker
# run: curl -fsSL https://get.docker.com | sh
- name: Checkout code
uses: actions/checkout@v3
# - name: Check out repository code.
# uses: actions/checkout@v4
- name: Set image tags and names
id: vars
run: |
IMAGE_REGISTRY=gitea.fithwum.tech
IMAGE_ORG=fithwum
IMAGE_REPO=base-image
IMAGE_NAME=debian
# Set the tag based on the folder name (buster, bullseye, bookworm, docker-build)
IMAGE_TAG_BUSTER=buster
IMAGE_TAG_BULLSEYE=bullseye
IMAGE_TAG_BOOKWORM=bookworm
IMAGE_TAG_DOCKER_BUILD=docker-build
- name: Build Base-image 1.
uses: docker/build-push-action@v5
run: docker build --pull --rm -f "debian/buster/Dockerfile" -t gitea.fithwum.tech/fithwum/base-image:debian-buster "debian/buster"
- name: publish Base-image 1.
run: docker push -a gitea.fithwum.tech/fithwum/base-image
echo "IMAGE_TAG_BUSTER=${IMAGE_TAG_BUSTER}" >> $GITHUB_ENV
echo "IMAGE_TAG_BULLSEYE=${IMAGE_TAG_BULLSEYE}" >> $GITHUB_ENV
echo "IMAGE_TAG_BOOKWORM=${IMAGE_TAG_BOOKWORM}" >> $GITHUB_ENV
echo "IMAGE_TAG_DOCKER_BUILD=${IMAGE_TAG_DOCKER_BUILD}" >> $GITHUB_ENV
# Set image names for each subfolder Dockerfile
IMAGE_BUSTER=${IMAGE_REGISTRY}/${IMAGE_ORG}/${IMAGE_REPO}/${IMAGE_NAME}:${IMAGE_TAG_BUSTER}
IMAGE_BULLSEYE=${IMAGE_REGISTRY}/${IMAGE_ORG}/${IMAGE_REPO}/${IMAGE_NAME}:${IMAGE_TAG_BULLSEYE}
IMAGE_BOOKWORM=${IMAGE_REGISTRY}/${IMAGE_ORG}/${IMAGE_REPO}/${IMAGE_NAME}:${IMAGE_TAG_BOOKWORM}
IMAGE_DOCKER_BUILD=${IMAGE_REGISTRY}/${IMAGE_ORG}/${IMAGE_REPO}/${IMAGE_NAME}:${IMAGE_TAG_DOCKER_BUILD}
- name: Build Base-image 2.
uses: docker/build-push-action@v5
run: docker build --pull --rm -f "debian/bullseye/Dockerfile" -t gitea.fithwum.tech/fithwum/base-image:debian-bullseye "debian/bullseye"
- name: publish Base-image 2.
run: docker push -a gitea.fithwum.tech/fithwum/base-image
echo "IMAGE_BUSTER=${IMAGE_BUSTER}" >> $GITHUB_ENV
echo "IMAGE_BULLSEYE=${IMAGE_BULLSEYE}" >> $GITHUB_ENV
echo "IMAGE_BOOKWORM=${IMAGE_BOOKWORM}" >> $GITHUB_ENV
echo "IMAGE_DOCKER_BUILD=${IMAGE_DOCKER_BUILD}" >> $GITHUB_ENV
- name: Build Base-image 3.
uses: docker/build-push-action@v5
run: docker build --pull --rm -f "debian/bookworm/Dockerfile" -t gitea.fithwum.tech/fithwum/base-image:debian-bookworm "debian/bookworm"
- name: publish Base-image 3.
run: docker push -a gitea.fithwum.tech/fithwum/base-image
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
# - run: echo "The job was automatically triggered by a ${{ gitea.event_name }} event."
# - run: echo "This job is now running on a ${{ runner.os }} server hosted by Gitea!"
# - run: echo "The name of your branch is ${{ gitea.ref }} and your repository is ${{ gitea.repository }}."
- name: Log in to Gitea Registry
run: echo "${{ secrets.DOCKER_PASSWORD }}" | docker login gitea.fithwum.tech -u "${{ secrets.DOCKER_USERNAME }}" --password-stdin
# Build and Push Docker Images for buster, bullseye, bookworm, docker-build
- name: Build and Push buster Docker Image
run: |
docker buildx build --platform linux/amd64,linux/arm64 \
--push -t ${IMAGE_BUSTER} \
./buster
# - run: echo "The ${{ gitea.repository }} repository has been cloned to the runner."
- name: Build and Push bullseye Docker Image
run: |
docker buildx build --platform linux/amd64,linux/arm64 \
--push -t ${IMAGE_BULLSEYE} \
./bullseye
# - name: List files in the repository
# run: |
# ls ${{ gitea.workspace }}
- name: Build and Push bookworm Docker Image
run: |
docker buildx build --platform linux/amd64,linux/arm64 \
--push -t ${IMAGE_BOOKWORM} \
./bookworm
- run: echo "This job's status is ${{ job.status }}."
- name: Build and Push docker-build Docker Image
run: |
docker buildx build --platform linux/amd64,linux/arm64 \
--push -t ${IMAGE_DOCKER_BUILD} \
./docker-build