En DownToZero, estamos comprometidos con eliminar el desperdicio, ya sea en cómputo, energía u overhead operativo. Un desafío que enfrentan muchos equipos en entornos containerizados es manejar las actualizaciones de las imágenes de contenedor. Tradicionalmente, las implementaciones a menudo dependen de sondear en busca de actualizaciones cuando se usan etiquetas como latest. Esto provoca solicitudes innecesarias, mayor latencia en las actualizaciones y un uso ineficiente de los recursos.
Para abordar esto, estamos presentando una nueva forma de integrar despliegues directamente con GitHub Actions. Con la recientemente desarrollada DTZ GitHub Action, las actualizaciones de imágenes de contenedor ahora pueden ser empujadas directamente desde tu pipeline de GitHub hacia DownToZero. Esto significa nada de esperas, nada de sondeos: solo despliegues inmediatos y optimizados.
Desde el commit hasta el despliegue en una sola pasada: construye la imagen, púshala a tu registro de contenedores, resuelve el digest exacto de la imagen y actualiza el servicio objetivo mediante la DTZ GitHub Action. Sin sondeos ni ambigüedad: solo releases precisos basados en digest.
flowchart LR
subgraph GitHub Actions
A[Commit / Dispatch / Schedule]:::action --> B[Build Docker Image]:::action
B --> C[Push to Container Registry]:::action
C --> D[Resolve Image Digest]:::action
D --> E[DTZ Action: Update Service]:::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
La DTZ GitHub Action conecta tu workflow de GitHub con tus servicios de contenedores en DownToZero. Una vez que tu pipeline construye y empuja una nueva imagen de contenedor, la acción actualiza automáticamente el servicio designado con el digest de la imagen recién construida.
Esto garantiza:
latest—las implementaciones referencia el digest exacto de la imagen.Here’s a sample GitHub Actions workflow showing how this integration looks in practice:
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
This pipeline:
By integrating the DTZ GitHub Action into your CI/CD pipelines, you gain a faster, more efficient, and resource-conscious way to manage container deployments. This approach removes the guesswork of polling, ensures precise deployments, and reflects our mission at DownToZero: removing waste at every step.