Próbuję skopiować pojedynczy plik z katalogu głównego kontekstu kompilacji do nowo utworzonego katalogu w obrazie dokowanego.Sposób korzystania z instrukcji Docker dotyczących kopiowania/ADD do kopiowania pojedynczego pliku do obrazu
Dockerfile że używam jest następująco:
FROM debian:latest
RUN mkdir -p /usr/src/app
WORKDIR /usr/src/app
COPY test.txt /usr/src/app
Plik test.txt jest prosty plik ASCII w następujący sposób:
$ cat test.txt
This is a test
Jednak, gdy buduję ten obrazek I uzyskać obraz wskazujący, że ścieżka docelowa nie jest katalogiem.
$ 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
Próbowałem użyć wielu kombinacji wersji doków, obrazów podstawowych i dystrybucji z zainstalowanym dokiem. Próbowałem również używać ADD zamiast COPY, ale wynik jest taki sam.
Obecnie próbuję to na CentOS 7 z następującym zainstalowanej wersji Döcker:
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
Co zauważyłem jest to, że mogę skopiować katalog, ale nie pliku. Na przykład, jeśli utworzyć katalog „test” w korzeniu kontekstowego build i umieścić test.txt wewnątrz katalogu testów to mogę skopiować katalog z powodzeniem:
FROM debian:latest
RUN mkdir -p /usr/src/app
WORKDIR /usr/src/app
COPY test /usr/src/app
Zauważ, że w powyższym Dockerfile mogę skopiować cały ./test zamiast zwykłego pliku ./test.txt. Ta kompilacja pomyślnie.
Docker documentation ma następujący przypadek użycia próbki dla instrukcji egzemplarzu, który jest podobny do tego, co próbuję zrobić:
COPY hom?.txt /mydir/
Czy ktoś może wskazać, co robię źle? Jak mogę skopiować jeden plik?
Dziękuję jwodder, pracował od razu. –