L'instruction Dockerfile COPY échoue-t-elle?
Tous, je suis en train de la persistance de copier des fichiers à partir de mon hôte à une image, de sorte que ces fichiers sont disponibles avec chaque conteneur lancé basé sur l'image. En cours d'exécution sur debian wheezy 64 bits comme virtualbox guest.
le Dockerfile est assez simple (installation de octave image):
FROM debian:jessie
MAINTAINER GG_Python <[redacted]@gmail.com>
RUN apt-get update
RUN apt-get update
RUN apt-get install -y octave octave-image octave-missing-functions octave-nan octave-statistics
RUN mkdir /octave
RUN mkdir /octave/libs
RUN mkdir /octave/libs/jsonlab
COPY ~/octave/jsonlab/loadjson.m /octave/libs/jsonlab/.
Je suis la trace suivant après l'émission d'une commande de construction: docker build -t octave .
Sending build context to Docker daemon 423.9 kB
Sending build context to Docker daemon
Step 0 : FROM debian:jessie
---> 58052b122b60
Step 1 : MAINTAINER GG_Python <[..]@gmail.com>
---> Using cache
---> 90d2dd2f7ee8
Step 2 : RUN apt-get update
---> Using cache
---> 4c72c25cd829
Step 3 : RUN apt-get update
---> Using cache
---> b52f0bcb9f86
Step 4 : RUN apt-get install -y octave octave-image octave-missing-functions octave-nan octave-statistics
---> Using cache
---> f0637ab96d5e
Step 5 : RUN mkdir /octave
---> Using cache
---> a2d278b2819b
Step 6 : RUN mkdir /octave/libs
---> Using cache
---> 65efbbe01c99
Step 7 : RUN mkdir /octave/libs/jsonlab
---> Using cache
---> e41b80901266
Step 8 : COPY ~/octave/jsonlab/loadjson.m /octave/libs/jsonlab/.
INFO[0000] ~/octave/jsonlab/loadjson.m: no such file or directory
Docker refuse absolument de copier ce fichier à partir de l'hôte dans l'image. Inutile de dire que le fichier loadjson.m est-il (cat affiche), toutes mes tentatives pour modifier le chemin (relatif, absolu, etc.) a échoué. Tous les conseils pourquoi cette simple tâche est problématique?
source d'informationauteur GG_Python
Vous devez vous connecter pour publier un commentaire.
Docker ne pas étendre ~ ou $HOME. Vous avez probablement besoin de la référence du fichier de manière explicite, ou par rapport à la Dockerfile lui-même.
Docker ne peut copier des fichiers à partir du contexte, dans le dossier que vous moins n'importe quel fichier répertoriés dans le dockerignore fichier.
Lorsque vous exécutez 'docker construire" docker goudrons le contexte et il envoie le démon docker vous êtes connecté. Il vous permet de copier des fichiers à l'intérieur du contexte parce que le démon pourrait être une machine distante.
Je ne pouvais pas obtenir une COPIE de travail jusqu'à ce que j'ai compris le contexte (j'ai essayé de copier un fichier à partir de l'extérieur du contexte)
De référence:
https://docs.docker.com/engine/reference/builder/#usage