Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

Unable to detect rollbacks during "docker stack deploy" in CI/CD

Abierto
#6,752 1 comentario 1 reacción 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
4/5
Tiempo estimado
3-5 días
Aptitud para principiantes
42/100
Tipo de issue
Error
Claridad
Bastante claro
Estado de actividad
Estancado
Stack tecnológico
docker, go
Área
ci-cd, cli

Línea de trabajo

Comienza rastreando docker stack deploy --detach=false a través de la gestión de actualizaciones de servicios y rollbacks, centrándote en cómo el comando determina su código de salida. Reproduce el comportamiento con el fallo del healthcheck del docker-compose.yml proporcionado y verifica que un rollback se informe mediante un estado distinto de cero adecuado para CI/CD.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

area/stack area/swarm kind/feature status/0-triage
Description

We're running a docker stack deploy ... in CI/CD to deploy apps. When a service isn't updated successfully and a rollback is triggered, the deploy command still exits with code 0 indicating everything is fine. I haven't found a way to let it exit with another code, so the CI/CD pipeline can react on the deployment error (the rollback).

$ docker stack deploy --detach=false -c docker-compose.yml test-rollback
Updating service test-rollback_web (id: ximv0s6r8fgd17mdh6d100yuk)
overall progress: rolling back update: 2 out of 2 tasks
1/2: running   [==================================================>]
2/2: running   [==================================================>]
rollback: update rolled back due to failure or early termination of task 8jej8t73el7cgty3t5s4l6gwp
verify: Service ximv0s6r8fgd17mdh6d100yuk converged
$ echo $?
0

Used docker-compose (first deploy it with exit 0 in the healthcheck, then edit to exit 1 to get a rollback on the next deployment):

$ cat docker-compose.yml
services:
  web:
    image: nginx:alpine
    deploy:
      replicas: 2
      update_config:
        order: start-first
        failure_action: rollback
        monitor: 5s
        parallelism: 1
      restart_policy:
        condition: any
    healthcheck:
      # guaranteed to fail
      test: ["CMD", "sh", "-c", "exit 1"]
      interval: 2s
      timeout: 1s
      retries: 2
Lenguaje dominante
Go
Estrellas
6.1k
Forks
2.2k
Merge medio
1 d 10 h
PR fusionados (30 d)
47

Guía de contribución

Abrir la guía de contribución

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de docker/cli

Todos los issues de docker/cli

Issues similares

Más issues de Go

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.