Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

584
Vistas
La ruta relativa no funciona con volúmenes con nombre en docker-compose.yml

Necesito hacer que un volumen con nombre use una ruta relativa a la carpeta donde se ejecuta el comando docker-compose .

Aquí está la definición de volumen en docker-compose.yml

 volumes: esdata1: driver: local driver_opts: type: none device: ./esdata1 o: bind

Parece que docker-compose no crea la carpeta si no existe , pero incluso cuando la carpeta se crea antes de iniciar la ventana acoplable, siempre recibo este error:

 ERROR: for esdata Cannot create container for service esdata: error while mounting volume with options: type='none' device='./esdata1' o='bind': no such file or directory

NOTA: Esto puede ser una tontería, pero esdata es el servicio que usa el volumen con nombre

 esdata: ... volumes: - esdata1:/usr/share/elasticsearch/data ...

¿Qué me estoy perdiendo aquí?

Tal vez la ruta relativa ./ no apunte a la carpeta donde se ejecuta docker-compose (he intentado con ~/ usar una carpeta relativa a la casa del usuario pero obtuve el mismo error).

Gracias por adelantado,

PD: si uso una ruta absoluta, funciona a las mil maravillas

about 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

Encontré exactamente el mismo problema. Parece que no has hecho nada malo. Esto aún no está implementado en Docker: https://github.com/docker/compose/issues/6343

No es muy agradable para la portabilidad...

about 4 years ago · Santiago Trujillo Denunciar

0

Si usa un montaje de vinculación con nombre como este, debe incluir la ruta completa al archivo, por ejemplo:

 volumes: esdata1: driver: local driver_opts: type: none device: /home/username/project/esdata1 o: bind

Esa carpeta también debe existir de antemano. Así es como funciona Linux bind mount syscall, y cuando pasa indicadores como este, está hablando directamente con Linux sin ninguna expansión de ruta por docker o compose.

Si solo desea montar el directorio desde el host, el uso de un volumen de host se expandirá para la ruta relativa al componer:

 esdata: ... volumes: - ./esdata1:/usr/share/elasticsearch/data ...

Si bien el volumen del host es más fácil para la portabilidad, ya que la ruta se expande automáticamente, perderá la función de los volúmenes con nombre donde la ventana acoplable inicializa un volumen con nombre vacío con el contenido de la imagen (incluidos los permisos/la propiedad del archivo).

about 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda