Nahtlose Deployments mit der DTZ GitHub Action

created: Dienstag, Sept. 23, 2025

Verschwendete Zyklen in der Bereitstellung beseitigen

Bei DownToZero sind wir darauf fokussiert, Verschwendung zu vermeiden — sei es bei Rechenleistung, Energie oder betrieblichem Aufwand. Eine Herausforderung, der viele Teams in containerisierten Umgebungen begegnen, ist das Handling von Updates für Container-Images. Traditionell verlassen sich Deployments oft auf Polling nach Updates, wenn Tags wie latest verwendet werden. Das führt zu unnötigen Anfragen, erhöhter Latenz bei Updates und ineffizienter Ressourcennutzung.

Um dem zu begegnen, führen wir eine neue Möglichkeit ein, Deployments direkt mit GitHub Actions zu integrieren. Mit der neu entwickelten DTZ GitHub Action können Container-Image-Updates nun direkt aus Ihrer GitHub-Pipeline in DownToZero gepusht werden. Das bedeutet kein Warten mehr, kein Polling — nur sofortige, schlanke Deployments.

Auf einen Blick

Vom Commit zum Deploy in einem Durchlauf: Bauen Sie das Image, pushen Sie es in Ihr Container-Registry, ermitteln Sie den exakten Digest und aktualisieren Sie den Zielservice über die DTZ GitHub Action. Kein Polling, keine Unklarheiten — nur präzise, digest-gesteuerte Releases.

flowchart LR
  subgraph GitHub Actions
    A[Commit / Dispatch / Zeitplan]:::action --> B[Docker-Image bauen]:::action
    B --> C[In Container-Registry pushen]:::action
    C --> D[Image-Digest ermitteln]:::action
    D --> E[DTZ Action: Service aktualisieren]:::action
  end

  subgraph DownToZero
    R[(DTZ Container-Registry)]:::registry
    S[Container-Service]:::service
  end

  C --> R
  E --> S

  classDef action fill:#fff8e1,stroke:#f9a825,color:#5d4037
  classDef registry fill:#e3f2fd,stroke:#1e88e5,color:#0d47a1
  classDef service fill:#e8f5e9,stroke:#43a047,color:#1b5e20

Wie es funktioniert

Die DTZ GitHub Action verbindet Ihren GitHub-Workflow mit Ihren DownToZero-Container-Services. Sobald Ihre Pipeline ein neues Container-Image baut und pusht, aktualisiert die Action automatisch den vorgesehenen Service mit dem frisch gebauten Image-Digest.

Das stellt sicher:

Beispiel-Pipeline

Hier ist ein Beispiel-Workflow für GitHub Actions, der zeigt, wie diese Integration in der Praxis aussieht:

on:
  push:
  workflow_dispatch:
  schedule: # scheduled rebuild for security updates
    - cron: '30 5 25 * *'
jobs:
  build-website:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v4
    - name: build website
      run: |
        docker build -t ee8h25d0.cr.dtz.dev/sample-website .
    - name: Login to ee8h25d0.cr.dtz.dev
      uses: docker/login-action@v3
      with:
        registry: ee8h25d0.cr.dtz.dev
        username: apikey
        password: ${{ secrets.DTZ_API_KEY }}
    - name: uploading image to ee8h25d0.cr.dtz.dev
      run: |
        docker push ee8h25d0.cr.dtz.dev/sample-website:latest
    - name: Resolve image digest
      id: resolve_digest
      run: |
        DIGEST=$(docker inspect --format='{{index .RepoDigests 0}}' ee8h25d0.cr.dtz.dev/sample-website:latest)
        echo "IMAGE_URL=$DIGEST" >> $GITHUB_ENV
    - name: Deploy latest image to service
      uses: DownToZero-Cloud/containers-service-update@main
      with:
        container_image: ${{ env.IMAGE_URL }}
        container_image_version: ''
        api_key: ${{ secrets.DTZ_API_KEY }}
        service_id: service-0194e6d9
    - name: Publish image URL to summary
      run: |
        echo "## Deployed image" >> $GITHUB_STEP_SUMMARY
        echo "" >> $GITHUB_STEP_SUMMARY
        echo "${IMAGE_URL}" >> $GITHUB_STEP_SUMMARY

Diese Pipeline:

Fazit

Durch die Integration der DTZ GitHub Action in Ihre CI/CD-Pipelines gewinnen Sie eine schnellere, effizientere und ressourcenbewusstere Methode zur Verwaltung von Container-Deployments. Dieser Ansatz beseitigt das Rätselraten beim Polling, gewährleistet präzise Deployments und spiegelt unsere Mission bei DownToZero wider: Verschwendung in jedem Schritt zu entfernen.