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 # .gitea/workflows/docker-multi-build.yml
run-name: ${{ gitea.actor }} is building the docker base image.
on: [push] 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: jobs:
docker: build:
runs-on: cth-test runs-on: ubuntu-latest
steps: steps:
# - name: Install Docker - name: Checkout code
# run: curl -fsSL https://get.docker.com | sh uses: actions/checkout@v3
# - name: Check out repository code. - name: Set image tags and names
# uses: actions/checkout@v4 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. echo "IMAGE_TAG_BUSTER=${IMAGE_TAG_BUSTER}" >> $GITHUB_ENV
uses: docker/build-push-action@v5 echo "IMAGE_TAG_BULLSEYE=${IMAGE_TAG_BULLSEYE}" >> $GITHUB_ENV
run: docker build --pull --rm -f "debian/buster/Dockerfile" -t gitea.fithwum.tech/fithwum/base-image:debian-buster "debian/buster" echo "IMAGE_TAG_BOOKWORM=${IMAGE_TAG_BOOKWORM}" >> $GITHUB_ENV
- name: publish Base-image 1. echo "IMAGE_TAG_DOCKER_BUILD=${IMAGE_TAG_DOCKER_BUILD}" >> $GITHUB_ENV
run: docker push -a gitea.fithwum.tech/fithwum/base-image
# 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. echo "IMAGE_BUSTER=${IMAGE_BUSTER}" >> $GITHUB_ENV
uses: docker/build-push-action@v5 echo "IMAGE_BULLSEYE=${IMAGE_BULLSEYE}" >> $GITHUB_ENV
run: docker build --pull --rm -f "debian/bullseye/Dockerfile" -t gitea.fithwum.tech/fithwum/base-image:debian-bullseye "debian/bullseye" echo "IMAGE_BOOKWORM=${IMAGE_BOOKWORM}" >> $GITHUB_ENV
- name: publish Base-image 2. echo "IMAGE_DOCKER_BUILD=${IMAGE_DOCKER_BUILD}" >> $GITHUB_ENV
run: docker push -a gitea.fithwum.tech/fithwum/base-image
- name: Build Base-image 3. - name: Set up Docker Buildx
uses: docker/build-push-action@v5 uses: docker/setup-buildx-action@v3
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
# - run: echo "The job was automatically triggered by a ${{ gitea.event_name }} event." - name: Log in to Gitea Registry
# - run: echo "This job is now running on a ${{ runner.os }} server hosted by Gitea!" run: echo "${{ secrets.DOCKER_PASSWORD }}" | docker login gitea.fithwum.tech -u "${{ secrets.DOCKER_USERNAME }}" --password-stdin
# - run: echo "The name of your branch is ${{ gitea.ref }} and your repository is ${{ gitea.repository }}."
# 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 - name: Build and Push bookworm Docker Image
# run: | run: |
# ls ${{ gitea.workspace }} 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

View File

@@ -0,0 +1,59 @@
#!/bin/bash
# Copyright (c) 2018 fithwum
# All rights reserved
RELEASE=stable
echo " "
echo "INFO ! Downloading other parts of the script if needed."
if [ -e /debian-bookworm_pt2.sh ]
then
echo "INFO ! debian-bookworm_pt2.sh found ... will not download."
else
echo " "
echo "WARNING ! debian-bookworm_pt2.sh not found ... will download new copy."
wget --no-cache https://gitea.fithwum.tech/fithwum/base-image/raw/branch/main/build-script/debian-bookworm_pt2.sh -O /debian-bookworm_pt2.sh
chmod +x debian-bookworm_pt2.sh
fi
if [ -e /debian-bookworm_pt3.sh ]
then
echo "INFO ! debian-bookworm_pt3.sh found ... will not download."
else
echo " "
echo "WARNING ! debian-bookworm_pt3.sh not found ... will download new copy."
wget --no-cache https://gitea.fithwum.tech/fithwum/base-image/raw/branch/main/build-script/debian-bookworm_pt3.sh -O /debian-bookworm_pt3.sh
chmod +x debian-bookworm_pt3.sh
fi
sleep 1
echo " "
echo "INFO ! Getting system updates."
apt-get -y update
apt-get -y upgrade
apt-get -y dist-upgrade
apt autoremove -y
echo " "
echo "INFO ! Installing debootstrap,ftp-upload,bash,dirmngr,curl."
sleep 1
apt-get install -y debootstrap ftp-upload bash dirmngr curl
sleep 1
echo " "
echo "INFO ! Downloading debian & selected packages."
debootstrap --force-check-gpg --variant=minbase --components=main,contrib,non-free --include=dirmngr,apt-transport-https,bash,software-properties-common,ca-certificates,wget,curl,nano --arch=amd64 bookworm /debian-bookworm http://deb.debian.org/debian/
echo " "
echo "INFO ! Filesystem size uncompressed."
sleep 1
du --human-readable --summarize debian-bookworm
sleep 5
echo " "
echo "INFO ! Mounting folders for root."
mount --bind /dev debian-bookworm/dev
mount --bind /dev/pts debian-bookworm/dev/pts
mount --bind /proc debian-bookworm/proc
mount --bind /sys debian-bookworm/sys
sleep 1
cp -v debian-bookworm_pt2.sh /debian-bookworm
echo " "
echo "INFO ! Changeing to new root."
sleep 1
chroot debian-bookworm
exit

View File

@@ -0,0 +1,20 @@
#!/bin/bash
# Copyright (c) 2018 fithwum
# All rights reserved
echo " "
echo "APT::Get::Assume-Yes \"true\";" | tee /etc/apt/apt.conf.d/10-assume_yes
sleep 1
echo " "
echo "INFO ! Removeing unnecessary packages."
apt-get remove --allow-remove-essential pinentry-curses whiptail kmod iptables iproute2 dmidecode
sleep 1
echo " "
echo "INFO ! Cleanup."
apt-get clean
spt --fix-broken install
find /var/lib/apt/lists/ -maxdepth 2 -type f -delete
sleep 1
echo " "
echo "INFO ! Type "exit" and reboot for final steps."
exit

View File

@@ -0,0 +1,33 @@
#!/bin/bash
# Copyright (c) 2018 fithwum
# All rights reserved
echo " "
echo "INFO ! Cleaning up pt2 of script from base image."
rm -frv /debian-bookworm/debian-bookworm_pt2.sh
sleep 1
echo " "
echo "INFO ! Base image size after cleanup."
du --human-readable --summarize debian-bookworm
sleep 5
echo " "
echo "INFO ! Creating base image archive."
echo "INFO ! This may take some time."
tar -cjf debian-bookworm.tar.bz2 --directory debian-bookworm .
sleep 1
echo " "
echo "INFO ! Base image archive."
du --human-readable --summarize debian-bookworm.tar.bz2
sleep 5
echo " "
echo "INFO ! Uploading image to ftp server."
ftp-upload -v -h {IP}:{PORT} -u {USER} --password {PASSWORD} -d /mnt/user/FTP debian-bookworm.tar.bz2
sleep 1
echo " "
echo "INFO ! Removing temp files."
rm -fr debian-bookworm
rm -frv debian-bookworm.tar.bz2
echo " "
echo "INFO ! Done."
echo " "
exit

View File

@@ -5,6 +5,5 @@
docker build --pull --rm -f "debian/buster/Dockerfile" -t fithwum/base-image:debian-buster "debian/buster" docker build --pull --rm -f "debian/buster/Dockerfile" -t fithwum/base-image:debian-buster "debian/buster"
docker build --pull --rm -f "debian/bullseye/Dockerfile" -t fithwum/base-image:debian-bullseye "debian/bullseye" docker build --pull --rm -f "debian/bullseye/Dockerfile" -t fithwum/base-image:debian-bullseye "debian/bullseye"
docker build --pull --rm -f "debian/bookworm/Dockerfile" -t fithwum/base-image:debian-bookworm "debian/bookworm" docker build --pull --rm -f "debian/bookworm/Dockerfile" -t fithwum/base-image:debian-bookworm "debian/bookworm"
docker push fithwum/base-image:debian-buster docker build --pull --rm -f "debian/bookworm/Dockerfile" -t fithwum/base-image:docker-build "debian/docker-build"
docker push fithwum/base-image:debian-bullseye docker push -a fithwum/base-image
docker push fithwum/base-image:debian-bookworm

18
debian/docker-build/.pipeline.yml vendored Normal file
View File

@@ -0,0 +1,18 @@
variables:
IMAGE_TAG: "debian-docker-build"
DOCKER_HOST: ""
DOCKER_DRIVER: overlay2
build_image:
image: docker:24.0.7
services:
- docker:24.0.7-dind-rootless
variables:
DOCKER_TLS_CERTDIR: ""
GIT_SSL_NO_VERIFY: true
before_script:
- docker login $CI_REGISTRY -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD
script:
- cd "$CI_PROJECT_DIR/debian/docker-build/"
- docker build -t $CI_REGISTRY/fithwum/base-image/$IMAGE_NAME:$IMAGE_TAG .
- docker push -a $CI_REGISTRY/fithwum/base-image/$IMAGE_NAME

4
debian/docker-build/Dockerfile vendored Normal file
View File

@@ -0,0 +1,4 @@
FROM scratch
LABEL maintainer "fithwum"
ADD /debian-bookworm.tar.bz2 /
CMD ["/bin/bash"]

Binary file not shown.