Compare commits

...

6 Commits

Author SHA1 Message Date
Patrick Asmus
ff239a7577 Docker Image Version erhöht
All checks were successful
Build Docker Image / Build & Push Docker Image (push) Successful in 5m8s
2026-07-19 13:15:08 +02:00
Patrick Asmus
0bd29a96ef Workflow hinzugefügt 2026-07-19 13:14:16 +02:00
Patrick Asmus
f1265c8f85 Docker Network changed 2026-07-19 13:00:59 +02:00
Patrick Asmus
705fdeeeab Dockerfile updated 2026-07-19 12:58:53 +02:00
scriptos
1474a4eb1f Docker Image in neues Repo umgezogen 2025-09-28 12:51:26 +02:00
a49697b0eb Merge pull request 'release' (#4) from release into main
Reviewed-on: #4
2025-08-02 18:50:48 +00:00
4 changed files with 116 additions and 8 deletions

View File

@@ -0,0 +1,99 @@
name: Build Docker Image
on:
push:
branches: [main]
paths:
- docker-compose.yaml
workflow_dispatch:
jobs:
docker:
name: Build & Push Docker Image
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Detect image version change
id: image
shell: bash
run: |
extract_image() {
grep -E '^[[:space:]]*image:[[:space:]]+' "$1" \
| head -n1 \
| awk '{ print $2 }' \
| sed 's/^["'\'']//; s/["'\'']$//'
}
CURRENT_IMAGE="$(extract_image docker-compose.yaml)"
if [ -z "$CURRENT_IMAGE" ]; then
echo "::error::No image found in docker-compose.yaml"
exit 1
fi
OLD_IMAGE=""
if [ "${{ github.event_name }}" = "push" ] && [ -n "${{ github.event.before }}" ]; then
if git cat-file -e "${{ github.event.before }}:docker-compose.yaml" 2>/dev/null; then
git show "${{ github.event.before }}:docker-compose.yaml" > /tmp/docker-compose.previous.yaml
OLD_IMAGE="$(extract_image /tmp/docker-compose.previous.yaml || true)"
fi
fi
IMAGE_BASE="${CURRENT_IMAGE%:*}"
IMAGE_TAG="${CURRENT_IMAGE##*:}"
REGISTRY="${CURRENT_IMAGE%%/*}"
if [ "$IMAGE_TAG" = "$CURRENT_IMAGE" ] || [ -z "$IMAGE_TAG" ]; then
echo "::error::Image must include an explicit tag, e.g. git.techniverse.net/scriptos/sinusbot:1.1"
exit 1
fi
CHANGED="false"
if [ "${{ github.event_name }}" = "workflow_dispatch" ] || [ "$CURRENT_IMAGE" != "$OLD_IMAGE" ]; then
CHANGED="true"
fi
echo "current_image=$CURRENT_IMAGE"
echo "old_image=${OLD_IMAGE:-<none>}"
echo "changed=$CHANGED"
echo "changed=$CHANGED" >> "$GITHUB_OUTPUT"
echo "image=$CURRENT_IMAGE" >> "$GITHUB_OUTPUT"
echo "image_base=$IMAGE_BASE" >> "$GITHUB_OUTPUT"
echo "tag=$IMAGE_TAG" >> "$GITHUB_OUTPUT"
echo "registry=$REGISTRY" >> "$GITHUB_OUTPUT"
- name: Stop when image version did not change
if: steps.image.outputs.changed != 'true'
run: echo "Image version unchanged. Skipping Docker build."
- name: Login to Gitea Container Registry
if: steps.image.outputs.changed == 'true'
uses: docker/login-action@v3
with:
registry: ${{ steps.image.outputs.registry }}
username: ${{ secrets.REGISTRY_USER }}
password: ${{ secrets.REGISTRY_TOKEN }}
- name: Set up Docker Buildx
if: steps.image.outputs.changed == 'true'
uses: docker/setup-buildx-action@v3
- name: Build and push Docker image
if: steps.image.outputs.changed == 'true'
uses: docker/build-push-action@v6
with:
context: .
push: true
tags: |
${{ steps.image.outputs.image }}
${{ steps.image.outputs.image_base }}:latest
labels: |
org.opencontainers.image.title=Sinusbot
org.opencontainers.image.version=${{ steps.image.outputs.tag }}
org.opencontainers.image.source=${{ github.server_url }}/${{ github.repository }}
org.opencontainers.image.licenses=MIT

View File

@@ -13,7 +13,10 @@ RUN apt-get update && \
libasound2 libegl1-mesa libfontconfig libglib2.0-0 libnss3 libpci3 \
libxcomposite-dev libxcursor1 libxdamage1 libxi6 libxkbcommon0 \
libxkbcommon-x11-0 libxss1 libxslt1.1 libxtst6 x11-xkb-utils \
libpulse0 espeak-ng mbrola mbrola-de6 \
libpulse0 libevent-2.1-7 libxrandr2 liblcms2-2 libatomic1 \
libxcb-icccm4 libxcb-image0 libxcb-keysyms1 libxcb-render-util0 \
libxcb-render0 libxcb-shape0 libxcb-xinerama0 \
espeak-ng mbrola mbrola-de6 \
fonts-dejavu fonts-liberation fonts-freefont-ttf \
&& update-ca-certificates && \
useradd -m -d /home/${BOT_USER} -s /bin/bash ${BOT_USER} && \

View File

@@ -67,8 +67,8 @@ PLEASE MAKE SURE TO CHANGE THE PASSWORD DIRECTLY AFTER YOUR FIRST LOGIN!!!
Aktuell stehen folgende Tags für das Image zur Verfügung:
- `1.0.2` Feste Version, basiert auf Sinusbot 1.0.2
- `latest` Enthält immer die aktuellste Version dieses Docker-Images (nicht zwingend den neuesten Sinusbot selbst)
- `git.techniverse.net/scriptos/sinusbot:1.0.2` Feste Version, basiert auf Sinusbot 1.0.2
- `git.techniverse.net/scriptos/sinusbot:latest` Enthält immer die aktuellste Version dieses Docker-Images (nicht zwingend den neuesten Sinusbot selbst)
👉 Empfohlen wird, für produktive Umgebungen einen festen Tag wie `1.0.2` zu verwenden, um unbeabsichtigte Änderungen durch zukünftige Updates zu vermeiden.

View File

@@ -4,12 +4,12 @@ services:
build:
context: .
dockerfile: Dockerfile
image: repo.techniverse.net/docker-hosted/sinusbot:1.0.2
image: git.techniverse.net/scriptos/sinusbot:1.1.0
container_name: sinusbot
hostname: sinusbot
networks:
sinusbot.dockernetwork.local:
ipv4_address: 172.16.72.10
sinusbot_net:
ipv4_address: 172.29.84.10
user: "1000:1000"
ports:
- "8087:8087"
@@ -20,5 +20,11 @@ services:
restart: unless-stopped
networks:
sinusbot.dockernetwork.local:
external: true
sinusbot_net:
name: sinusbot.dockernetwork.local
driver: bridge
ipam:
config:
- subnet: 172.29.84.0/24
gateway: 172.29.84.1
ip_range: 172.29.84.128/25