Comment utiliser le Panneau de COPIER/AJOUTER des instructions pour copier un seul fichier pour une image

Je suis en train de copier un fichier unique à partir de la racine de la construction en contexte dans un nouveau répertoire créé dans un menu fixe de l'image.

Le Dockerfile que j'utilise est la suivante:

FROM debian:latest
RUN mkdir -p /usr/src/app
WORKDIR /usr/src/app
COPY test.txt /usr/src/app

L'test.txt le fichier est un simple fichier texte ASCII comme suit:

$ cat test.txt 
This is a test

Cependant, lorsque je créer cette image j'obtiens une image indiquant que le chemin de destination n'est pas un répertoire.

$ docker build .
Sending build context to Docker daemon 4.608 kB
Sending build context to Docker daemon 
Step 0 : FROM debian:latest
 ---> 9a61b6b1315e
Step 1 : RUN mkdir -p /usr/src/app
 ---> Using cache
 ---> 86bd44a8776e
Step 2 : WORKDIR /usr/src/app
 ---> Using cache
 ---> ed6771adc681
Step 3 : ADD test.txt /usr/src/app
stat /var/lib/docker/devicemapper/mnt/ee5b9b7029f2adf27d332cbb0d98d6ad9927629a7569fd2d9574cb767b23547b/rootfs/usr/src/app/test.txt: not a directory

J'ai essayé d'utiliser de multiples combinaisons de docker versions de base des images, et des distributions avec menu fixe installé. J'ai également essayé d'utiliser d'AJOUTER au lieu de la COPIE, mais le résultat est le même.

Je suis en train d'essayer cela sur CentOS 7 à la suite de docker version installée:

Client version: 1.7.1
Client API version: 1.19
Go version (client): go1.4.2
Git commit (client): 786b29d
OS/Arch (client): linux/amd64
Server version: 1.7.1
Server API version: 1.19
Go version (server): go1.4.2
Git commit (server): 786b29d
OS/Arch (server): linux/amd64

Ce que j'ai remarqué, c'est que je peux copier un répertoire, mais pas un fichier. Par exemple, si je crée un répertoire "test" dans la construire la racine de contexte et de mettre test.txt à l'intérieur du répertoire de test puis je peux copier le répertoire avec succès:

FROM debian:latest
RUN mkdir -p /usr/src/app
WORKDIR /usr/src/app
COPY test /usr/src/app

Remarque que ci-dessus Dockerfile je copie l'intégralité ./répertoire de test plutôt que de simplement ./test.txt. Ce build avec succès.

La Docker documentation a la suite de l'échantillon de cas d'utilisation pour l'instruction de COPIE qui est similaire à ce que je suis en train de faire:

COPY hom?.txt /mydir/

Quelqu'un peut-il point de ce que je fais de mal? Comment puis-je copier un seul fichier?

OriginalL'auteur Andrew Butler | 2015-07-26