En DownToZero, estamos comprometidos con eliminar el desperdicio, ya sea en cómputo, energía o sobrecarga operativa. Un desafío que enfrentan muchos equipos en entornos con contenedores es gestionar las actualizaciones de las imágenes de contenedor. Tradicionalmente, los despliegues a menudo dependen del sondeo de actualizaciones cuando se usan etiquetas como latest. Esto conduce a solicitudes innecesarias, mayor latencia para 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 no más esperas, no más sondeos—solo despliegues inmediatos y simplificados.
Del commit al despliegue en una sola pasada: construye la imagen, pásala a tu registro de contenedores, resuelve el digest exacto y actualiza el servicio objetivo mediante la GitHub Action de DTZ. Sin sondeos ni ambigüedades—solo lanzamientos precisos basados en digest.
flowchart LR
subgraph GitHub Actions
A[Commit / Despacho / Programación]:::action --> B[Construir imagen Docker]:::action
B --> C[Enviar al registro de contenedores]:::action
C --> D[Resolver digest de imagen]:::action
D --> E[Acción DTZ: Actualizar servicio]:::action
end
subgraph DownToZero
R[(Registro de contenedores DTZ)]:::registry
S[Servicio de contenedores]:::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 GitHub Action de DTZ 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 action actualiza automáticamente el servicio designado con el digest de la imagen recién construida.
Esto asegura:
latest—los despliegues hacen referencia al 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:
Al integrar la GitHub Action de DTZ en tus pipelines CI/CD, obtienes una forma más rápida, eficiente y consciente de los recursos para gestionar despliegues de contenedores. Este enfoque elimina las suposiciones del sondeo, garantiza despliegues precisos y refleja nuestra misión en DownToZero: eliminar el desperdicio en cada paso.