tag run imagenes hub docker dockerfile

run - docker tag



Cómo agregar todos los archivos/directorios excepto un directorio oculto como.git en Dockerfile (3)

Una de las cosas que hacemos a menudo es empaquetar todo el código fuente en Dockerfile cuando construimos una imagen Docker.

ADD . /app

¿Cómo podemos evitar incluir el directorio .git de manera simple?

Probé la manera de manejar esto de Unix usando ADD [^.]* /app/

Muestra completa:

docker@boot2docker:/mnt/sda1/tmp/abc$ find . . ./c ./.git ./Dockerfile ./good ./good/a1 docker@boot2docker:/mnt/sda1/tmp/abc$ cat Dockerfile FROM ubuntu ADD [^.]* /app/ docker@boot2docker:/mnt/sda1/tmp/abc$ docker build -t abc . Sending build context to Docker daemon 4.096 kB Sending build context to Docker daemon Step 0 : FROM ubuntu ---> 04c5d3b7b065 Step 1 : ADD [^.]* /app/ d ---> 5d67603f108b Removing intermediate container 60159dee6ac8 Successfully built 5d67603f108b docker@boot2docker:/mnt/sda1/tmp/abc$ docker run -it abc root@1b1705dd66a2:/# ls -l app total 4 -rw-r--r-- 1 1000 staff 30 Jan 22 01:18 Dockerfile -rw-r--r-- 1 root root 0 Jan 22 01:03 a1 -rw-r--r-- 1 root root 0 Jan 22 00:10 c

Y en segundo lugar, perderá la estructura del directorio, ya que good/a1 se cambia a a1 .

El código fuente relacionado en Docker es https://github.com/docker/docker/blob/eaecf741f0e00a09782d5bcf16159cc8ea258b67/builder/internals.go#L115


¿Cómo podemos evitar incluir el directorio .git de manera simple?

Simplemente cree un archivo llamado .dockerignore en la carpeta de contexto raíz con las siguientes líneas

**/.git **/node_modules

Con tales líneas, Docker excluirá los directorios .git y node_modules de cualquier subdirectorio, incluido el directorio raíz. Docker también admite una cadena comodín especial ** que coincide con cualquier cantidad de directorios (incluido cero).

Y en segundo lugar, perderá la estructura del directorio, ya que good / a1 se cambia a a1

Con .dockerignore no lo hará

$ docker run -it --rm sample tree /opt/ /opt/ ├── Dockerfile ├── c │   └── no_sslv2.patch └── good └── a1 └── README 3 directories, 3 files

Referencia a documentos oficiales: .dockerignore


Agregue el archivo .dockerignore en su directorio raíz (sintaxis como el archivo .gitignore )