Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

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

Aperta
#6,752 1 commento 1 reazione 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
4/5
Tempo stimato
3-5 giorni
Idoneità per principianti
42/100
Tipo di issue
Bug
Chiarezza
Abbastanza chiara
Stato di attività
Ferma
Stack tecnologico
docker, go
Ambito
ci-cd, cli

Direzione di ricerca

Inizia tracciando docker stack deploy --detach=false attraverso la gestione degli aggiornamenti dei servizi e dei rollback, concentrandoti su come il comando determina il proprio stato di uscita. Riproduci il comportamento con il fallimento dell’healthcheck del docker-compose.yml fornito e verifica che un rollback venga segnalato tramite uno stato diverso da zero adatto a CI/CD.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

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
Lingua principale
Go
Stelle
6.1k
Fork
2.2k
Merge medio
1g 10h
PR unite (30g)
47

Guida per i contributori

Apri la guida per i contributori

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di docker/cli

Tutte le issue di docker/cli

Issue simili

Altre issue su Go

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.