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

[BUG] `docker compose run` drops the anonymous volumes of a dependency it recreates

Abierto
#14,357 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 1 día

@htoyoda18 ya está trabajando en esto.

Desde el 17/10/2026.

  • #14358 de @htoyoda18 — abierto

Evaluación

Dificultad
3/5
Tiempo estimado
1-2 días
Aptitud para principiantes
25/100
Tipo de issue
Error
Claridad
Bien especificado
Estado de actividad
Estancado
Stack tecnológico
docker, docker-compose, go

Línea de trabajo

Trace the implementation of docker compose run when it recreates a dependency, focusing on how anonymous volumes are transferred between container generations; compare that path with docker compose up. Use the provided Compose YAML and commands to reproduce the lost data, then add or update tests confirming that run preserves dependency volumes. This work is already being addressed by linked pull request #14358.

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

Descripción

kind/bug status/0-triage
Description

When docker compose run recreates a dependency whose configuration changed, the new container gets fresh, empty anonymous volumes instead of the old ones. A database dependency (any image declaring VOLUME, e.g. postgres or mysql) then looks wiped. docker compose up carries the same anonymous volumes over to the recreated container, so the data stays.

The data is not deleted: the previous anonymous volume is left dangling, so it can still be recovered by hand, but docker volume prune would remove it.

Expected: run keeps the anonymous volumes of a recreated dependency, as up does.

Steps To Reproduce
services:
  app:
    image: alpine
    command: echo done
    depends_on: [db]
  db:
    image: alpine
    command: sleep infinity
    volumes:
      - /data          # anonymous volume
    environment:
      TAG: ${TAG:-one}
$ docker compose up -d db
$ docker compose exec db sh -c 'echo hello > /data/file'
$ TAG=two docker compose run --rm app       # db's config changed, so db is recreated
$ docker compose exec db cat /data/file
cat: can't open '/data/file': No such file or directory

With TAG=two docker compose up -d db instead of run, the last command prints hello.

Compose Version
Docker Compose version 5.0.1
Also reproduced on main (289d8a037).
Docker Environment
Docker Engine 29.1.3 (linux/arm64, Docker Desktop on macOS)
Anything else?

No response

Lenguaje dominante
Go
Estrellas
38.4k
Forks
5.9k
Merge medio
2 d 2 h
PR fusionados (30 d)
66

Preparar el entorno

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/compose

Todos los issues de docker/compose

Issues similares

Más issues de Go

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.