una subir propia imagen hub guardar example ejemplos crear como dockerfile

dockerfile - subir - imagen docker ubuntu



¿Cómo copiar múltiples archivos en una capa usando un Dockerfile? (4)

Vale la pena mencionar que también puede crear un archivo .dockerignore para excluir los archivos que no desea copiar:

https://docs.docker.com/engine/reference/builder/#dockerignore-file

Antes de que la CLI de docker envíe el contexto al demonio de docker, busca un archivo llamado .dockerignore en el directorio raíz del contexto. Si este archivo existe, la CLI modifica el contexto para excluir archivos y directorios que coinciden con los patrones que contiene. Esto ayuda a evitar el envío innecesario de archivos y directorios grandes o confidenciales al demonio y, potencialmente, agregarlos a las imágenes mediante AGREGAR o COPIAR.

El siguiente Dockerfile contiene cuatro capas COPY :

COPY README.md ./ COPY package.json ./ COPY gulpfile.js ./ COPY __BUILD_NUMBER ./

¿Cómo copiar estos archivos usando una capa en su lugar? Se intentó lo siguiente:

COPY [ "__BUILD_NUMBER ./", "README.md ./", "gulpfile ./", "another_file ./", ]


sencillo

COPY README.md package.json gulpfile.js __BUILD_NUMBER ./

del doc

Si se especifican múltiples recursos, ya sea directamente o debido al uso de un comodín, entonces debe ser un directorio y debe terminar con una barra diagonal /.


COPY <all> <the> <things> <last-arg-is-destination>

Pero aquí hay un extracto importante de los documentos:

Si tiene varios pasos de Dockerfile que usan diferentes archivos de su contexto, COPIELOS individualmente, en lugar de todos a la vez. Esto garantiza que la memoria caché de compilación de cada paso solo se invalida (obligando a que el paso se vuelva a ejecutar) si cambian los archivos específicamente requeridos.

https://docs.docker.com/develop/develop-images/dockerfile_best-practices/#add-or-copy


COPY README.md package.json gulpfile.js __BUILD_NUMBER ./

o

COPY ["__BUILD_NUMBER", "README.md", "gulpfile", "another_file", "./"]

También puede usar caracteres comodín en la especificación del archivo fuente. Ver los documentos para un poco más de detalle .

Los directorios son especiales! Si tú escribes

COPY dir1 dir2 ./

que realmente funciona como

COPY dir1/* dir2/* ./

Si desea copiar varios directorios (no sus contenidos) en un directorio de destino en un solo comando, deberá configurar el contexto de compilación para que sus directorios de origen estén bajo un elemento primario común y luego COPY ese elemento primario.