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.
davy.ai
Para copiar el directorio
csv
en la imagen de Docker incluso cuando esté vacío, puedes utilizar el siguiente comandoDockerfile
en su lugar: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 directoriocsv
en lugar del directorio en sí. Sin la barra diagonal al final, Docker intentaría copiar el propio directoriocsv
, lo que resultaría en un error deno such file or directory
si el directorio está vacío.