run example container copy docker dockerfile

copy - container - dockerfile volume example



Copia de Dockerfile mantener estructura de subdirectorio (3)

Alternativamente, puede usar un "." en lugar de *, ya que esto tomará todos los archivos en el directorio de trabajo, incluya las carpetas y subcarpetas:

FROM ubuntu COPY . / RUN ls -la /

Estoy tratando de copiar una serie de archivos y carpetas a una construcción de imagen de acoplador desde mi host local.

Los archivos son así:

folder1 file1 file2 folder2 file1 file2

Estoy tratando de hacer la copia así:

COPY files/* /files/

Sin embargo, todos los archivos se colocan en / files / ¿hay alguna manera en Docker para mantener la estructura del subdirectorio y copiar los archivos en sus directorios?


Elimine la estrella de COPY, con este Dockerfile:

FROM ubuntu COPY files/ /files/ RUN ls -la /files/*

La estructura está ahí:

$ docker build . Sending build context to Docker daemon 5.632 kB Sending build context to Docker daemon Step 0 : FROM ubuntu ---> d0955f21bf24 Step 1 : COPY files/ /files/ ---> 5cc4ae8708a6 Removing intermediate container c6f7f7ec8ccf Step 2 : RUN ls -la /files/* ---> Running in 08ab9a1e042f /files/folder1: total 8 drwxr-xr-x 2 root root 4096 May 13 16:04 . drwxr-xr-x 4 root root 4096 May 13 16:05 .. -rw-r--r-- 1 root root 0 May 13 16:04 file1 -rw-r--r-- 1 root root 0 May 13 16:04 file2 /files/folder2: total 8 drwxr-xr-x 2 root root 4096 May 13 16:04 . drwxr-xr-x 4 root root 4096 May 13 16:05 .. -rw-r--r-- 1 root root 0 May 13 16:04 file1 -rw-r--r-- 1 root root 0 May 13 16:04 file2 ---> 03ff0a5d0e4b Removing intermediate container 08ab9a1e042f Successfully built 03ff0a5d0e4b


Para fusionar un directorio local en un directorio dentro de una imagen, haga esto. No eliminará los archivos ya presentes en la imagen. Solo agregará archivos que estén presentes localmente, sobrescribiendo los archivos en la imagen si ya existe un archivo con el mismo nombre.

COPY ./files/. /files/