J'ai un Dockerfile
où je copie un répertoire existant (avec le contenu) dans le conteneur qui fonctionne bien:
Dockerfile
FROM php:7.0-Apache
COPY Frontend/ /var/www/html/aw3somevideo/
COPY Frontend/ /var/www/html/
RUN ls -al /var/www/html
RUN chown -R www-data:www-data /var/www/html
RUN chmod -R 755 /var/www/html
Mais lorsque j'utilise un fichier docker-compose.yml
, il n'y a que le répertoire aw3somevideo
et à l'intérieur de aw3somevideo
, il n'y a rien.
docker-compose.yml :
php:
build: php/
volumes:
- ./Frontend/ :/var/www/html/
- ./Frontend/index.php :/var/www/html/
ports:
- 8100:80
Peut-être que je ne comprends pas la fonction de volumes
et si tel est le cas, dites-moi comment copier mes fichiers existants dans le conteneur via un fichier docker-compose.yml
.
Mis à jour en avril 2017
Le comportement a changé depuis que j'ai écrit la réponse originale. Il est maintenant cohérent que le côté droit spécifie un volume nommé tel que myvolume
ou un chemin sur l'hôte tel que /var/lib/myapp
. Par exemple
volumes:
- /dir/on/Host:/var/www/html
si /dir/on/Host
n'existe pas, il est créé sur l'hôte et le contenu vide est monté dans le conteneur sous /var/www/html
. Tout ce qui était dans /var/www/html
avant est inaccessible.
---- vieille réponse -----------
La section volumes:
de votre composition de docker écrase tout ce qui se trouve dans le répertoire /var/www/html
.
Il y a deux situations principales:
Le volume existe
Dans ce cas, le contenu du volume occulte tout ce qui se trouve dans le répertoire dst.
Par exemple:
volumes:
- /dir/on/Host:/var/www/html
Le volume n'existe pas
Si myvolume
n'existe pas (un volume nommé par exemple), le contenu de/var/www/html sera copié dans le volume la première fois
volumes:
- myvolume:/var/www/html
Dans le cas 2, si vous essayez de monter à nouveau le même volume sur un conteneur, le cas 1 sera suivi.
volumes:
- myvolume:/var/www/html
Dans ce cas (en supposant que mon volume a déjà été créé), le contenu de/var/ww/html sera écrasé (masqué) par tout ce qui se trouve dans myvolume
.
Le document officiel va dans plus de détails https://docs.docker.com/compose/compose-file/#/volumes-volume-driver