Kopieren von Dateien in einen Container mit Docker Compose
Ich habe eine Dockerfile
wo ich kopieren Sie ein vorhandenes Verzeichnis (mit Inhalt), die container, die gut funktioniert:
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
Aber wenn ich mit einem docker-compose.yml
- Datei gibt es nur das Verzeichnis aw3somevideo
und innen aw3somevideo
es ist nichts.
docker-Komponieren.yml:
php:
build: php/
volumes:
- ./Frontend/:/var/www/html/
- ./Frontend/index.php :/var/www/html/
ports:
- 8100:80
Vielleicht verstehe ich nicht die Funktion von volumes
und wenn das der Fall ist, bitte sagen Sie mir, wie kopieren, meine vorhandenen Dateien, um die container über eine docker-compose.yml
Datei.
InformationsquelleAutor der Frage TheDoctor | 2016-08-27
Du musst angemeldet sein, um einen Kommentar abzugeben.
Aktualisiert April 2017
Sich das Verhalten geändert hat, seit ich schrieb die original-Antwort. Es ist jetzt konsistent, ob die Rechte Seite gibt an einem benannten volume wie
myvolume
oder einen Pfad auf dem host wie/var/lib/myapp
.Zum Beispiel
wenn
/dir/on/host
nicht vorhanden ist, wird es auf dem host erstellt und der leere Inhalt wird montiert im container an/var/www/html
. Was war/var/www/html
vor unzugänglich ist.---- alte Antwort -----------
Den
volumes:
Abschnitt in Ihrem docker-verfassen überschreibt, was in den/var/www/html
Verzeichnis.Gibt es zwei Netz-Situationen:
Dem Volumen vorhanden ist
In diesem Fall, den Inhalt des volume überschattet, was in den dst-Verzeichnis.
ZB:
Das volume nicht vorhanden
Wenn
myvolume
existiert nicht (einem benannten volume zum Beispiel), wird der Inhalt von /var/www/html kopiert werden, um die Lautstärke das erste mal umIn Fall 2, wenn Sie versuchen zu montieren, die gleiche Lautstärke wieder auf einige container, es Folgen Fall 1.
In diesem Fall (vorausgesetzt, myvolume bereits erstellt wurde), wird der Inhalt von /var/ww/html überschrieben werden (shadowing) durch was auch immer in
myvolume
.Den offiziellen doc, geht mehr in die details https://docs.docker.com/compose/compose-file/#/volumes-volume-driver
InformationsquelleAutor der Antwort Alkaline