es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Copia el directorio en la construcción de Docker, sin importar si está vacío o no: falla en “ERROR al copiar: no se especificaron archivos de origen”.

Tengo un directorio “csv” en el directorio de contexto de “docker build”. Quiero copiarlo dentro de la imagen de Docker en todas las circunstancias (si el directorio en el host está vacío, se creará un directorio vacío dentro de la imagen; si el directorio en el host no está vacío, se copiará con todo su contenido).

El comando “COPY csv/* /csv/” muestra el error “COPY failed: no source files were specified” cuando el directorio está vacío.

Las preguntas similares que encontré en SO difieren de mi caso en configuración o intención (multistage build, copiar un archivo jar existente, archivo definitivamente existente), así que elijo un formato de pregunta y respuesta aquí en lugar de mezclar la pregunta con una respuesta no relacionada. Esta cuestión de GitHub también está relacionada.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para copiar el directorio csv en la imagen de Docker incluso cuando esté vacío, puedes utilizar el siguiente comando Dockerfile en su lugar:

    COPY csv/ /csv/
    

    Este comando copiará todo el directorio csv (incluyendo todos los archivos y subdirectorios) del host al directorio /csv/ dentro de la imagen, sin importar si el directorio está vacío o no.

    Es importante tener en cuenta que la barra diagonal al final en COPY csv/ /csv/ es significativa, ya que indica a Docker copiar el contenido del directorio csv en lugar del directorio en sí. Sin la barra diagonal al final, Docker intentaría copiar el propio directorio csv, lo que resultaría en un error de no such file or directory si el directorio está vacío.

Comments are closed.