Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

592
Visualizações
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

over 4 years ago · Santiago Trujillo
2 Respostas
Responde à pergunta

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...

over 4 years ago · Santiago Trujillo Relatório

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).

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda