[BUG] deploy.restart_policy without condition drops the restart policy
I maintainer di solito rispondono entro 1 giorno
@akshat-lakhera ci sta già lavorando.
Dal 24/10/2026.
Valutazione
- Difficoltà
- 2/5
- Tempo stimato
- 1-3 ore
- Idoneità per principianti
- 82/100
Direzione di ricerca
Inizia da pkg/compose/create.go in getRestartPolicy, poi esegui i test unitari mirati che coprono quella funzione. Conferma che deploy.restart_policy senza una condizione usi il valore predefinito della spec any e non scarti restart: always; se incluso nella modifica, deve essere coperto anche il comportamento del conteggio dei tentativi non valido per on-failure. Fatto significa che questi casi hanno test di regressione e che la suite di test mirata viene superata.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Description
When a service sets deploy.restart_policy but leaves out condition, compose sends an empty restart policy name to the engine and drops the service-level restart value too.
In pkg/compose/create.go, getRestartPolicy first works out the policy from the restart field, and then if deploy.restart_policy is set it replaces the whole thing with mapRestartPolicyCondition(policy.Condition). compose-go doesn't fill in a default for condition, so it stays empty and the default case in mapRestartPolicyCondition passes the empty string through. The Compose spec says condition defaults to any, but the engine accepts an empty name without an error, so the container is created and just never restarts.
Steps To Reproduce
services:
app:
image: alpine
command: sh -c "exit 1"
restart: always
deploy:
restart_policy:
max_attempts: 3
Calling getRestartPolicy with this service gives Name "" and MaximumRetryCount 3. The same happens with only delay: 5s under restart_policy.
Expected: condition defaults to any like the spec says, so the policy is always (and at least restart: always shouldn't be silently dropped).
Actual: the restart policy name is empty and the container doesn't restart.
I checked this at the function level with a unit test, not with a full docker compose up.
Anything else?
In the same function, restart: on-failure:abc silently becomes a retry count of 0 because the Atoi error is ignored, while docker run rejects that value. It could be fixed in the same PR.
Current main. If this sounds right, I would like to work on this.
- Lingua principale
- Go
- Stelle
- 38.5k
- Fork
- 5.9k
- Merge medio
- 2g 19h
- PR unite (30g)
- 77
Preparare l'ambiente
- Include un Dockerfile o un file Docker Compose
- Ha un modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di docker/compose
-
[BUG] `depends_on` health/completion waits always sleep 500ms before the first checkForse già presa @htoyoda18 l’ha presa 2 giorni fa. Apertakind/bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 35/100
I maintainer di solito rispondono entro 1 giorno
-
[BUG] A start failure in one service aborts the start of unrelated services (unreleased regression)Apertakind/bug
Difficoltà 4/5 3-5 giorni Idoneità per principianti 57/100
docker/compose#14372 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
Support OSC 7501 progressApertakind/feature
Difficoltà 4/5 3-5 giorni Idoneità per principianti 48/100
docker/compose#14365 · 2 commenti ·
I maintainer di solito rispondono entro 1 giorno
-
kind/feature
Difficoltà 5/5 Più di una settimana Idoneità per principianti 35/100
docker/compose#14356 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
Epic: Move service selection into the backend API instead of pre-filtering the project in the CLIAperta
Difficoltà 5/5 Più di una settimana Idoneità per principianti 15/100
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di docker/compose
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
FootprintAI/Containarium#3182 ·
I maintainer di solito rispondono entro 1 giorno
-
bug from-studio
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
esengine/DeepSeek-Reasonix#14608 ·
I maintainer di solito rispondono entro 1 giorno
-
triage
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
getarcaneapp/arcane#4590 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
I maintainer di solito rispondono entro 1 giorno
-
Library panel usage dialog uses singular grammarForse già presa Una pull request collegata a questa issue è aperta o già unita. Apertaarea/frontend/library-panels automated-triage type/bug type/ux
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 78/100
I maintainer di solito rispondono entro 1 giorno