Wenn ich eine Datei oder ein Verzeichnis zu Docker Image durch eine Dockerfile hinzufüge, verwende ich ADD oder COPY, aber der Dateipfad, den ich hinzufügen oder kopieren möchte, muss einen relativen Pfad zum Dockerfile-Verzeichnis haben. Gibt es eine Methode zum Hinzufügen einer Datei oder eines Verzeichnisses von localhost zu docker image mit dem absoluten Pfad? übrigens, warum der "docker cp" kann nur kopieren kopierdatei von docker image zu localhost? im Gegenteil, es funktioniert nicht?Wie kann ich ein Verzeichnis oder eine Datei in ein Docker-Image von localhost auf ubuntu14.04 kopieren?
Antwort
Die kurze Antwort ist, dass es nicht unterstützt wird.
Von der Docker docs:
Die <src> Papierweg in Zusammenhang mit der Build sein muss; Sie können nicht ../etwas/etwas, HINZUFÜGEN, da der erste Schritt eines Docker-Builds ist, das Kontextverzeichnis (und die Unterverzeichnisse) an den Docker-Dämon zu senden.
Des Weiteren sind symbolische Links nicht unterstützt, so dass es durch die Verknüpfung zu einer anderen Stelle auf dem lokalen Host nicht möglich Trick der Build ist.
URL: s werden unterstützt so eine Möglichkeit, um das Problem zu umgehen, ist es, die Dateien über HTTP zu dienen, wenn Sie einen Webserver auf Ihrem lokalen Host (oder in einem Docker-Container) aktivieren.
Der Befehl docker cp
(leider) wird nur vom Container zum Host unterstützt, nicht umgekehrt. Dies ist in der docs beschrieben. Um dies zu umgehen, verwenden Sie docker volumes, wo die Daten gemeinsam genutzt werden können.
['docker cp' ] (https://docs.docker.com/engine/reference/commandline/cp/) kann nun Dateien in beide Richtungen kopieren. – Zaz
Es gibt eine Abhilfe, wenn Sie docker-compose
verwenden:
api1:
build: .
dockerfile: cluster/manifests/Dockerfile-NodeAPI
ports:
- 8080
links:
- mongo
- redis
command: "nodemon lib/app.js -e js,json,scss,css,html"
Dies wird immer noch nicht zulassen, dass Sie Verwandte Pfade zu tun, aber basepath im Dockerfile
wird ./
statt cluster/manifests/
Die Lösung für Diejenigen, die Composer verwenden, verwenden eine volume, die auf den Ordner zeigt:
Aber ich bin mir ziemlich sicher, dass das mit volumes in Dockerfile gemacht werden kann.
eine Datei zu kopieren, verwenden Sie einfach docker cp
:
docker cp file.txt CONTAINER:/path/to/dest
ein Verzeichnis zu kopieren, ein tar-Rohr verwenden:
tar -c "dir/" | docker run -i -a stdin CONTAINER tar -xC /path/to/dest
auf Antwort wassgren der Darlegung, Sie können Sie auch eine Docker SDK zu mach das. Ich bin mir nicht sicher über jedes SDK, aber mindestens docker-java sendet den Kontext als Eingangsstrom an Docker. So geben Sie dockerClient.withBaseDirectory()
und dockerClient.withDockerFile()
an. Sie könnten einen mehr Scripting-Ansatz verwenden und verwenden Sie gradle oder groovy, um dies zu tun und zu vermeiden, "Java" für jedes Mal zu "kompilieren".
- 1. Hadoop ein Verzeichnis kopieren?
- 2. ein Verzeichnis oder eine Datei umbenennen
- 3. Wie kann ich feststellen, ob ein bestimmter Pfad ein Verzeichnis oder eine Datei ist? (C/C++)
- 4. Erstellen Sie ein Verzeichnis und kopieren Sie eine Datei
- 5. Wie kann ich kopieren Sie eine Datei von einem Verzeichnis in ein anderes mit einer .bat Datei
- 6. Wie führe ich eine Datei auf localhost?
- 7. Kopieren Sie eine Liste von Dateien in ein Verzeichnis
- 8. So kopieren Sie eine Datei aus einem Verzeichnis in ein anderes Verzeichnis in Java
- 9. Kopieren von Dateien in ein Verzeichnis in regelmäßigen/festgelegten Abständen
- 10. Wie kopieren wir ein ganzes Verzeichnis in ein anderes Verzeichnis in Maven?
- 11. Wie kopiere ich eine Datei in einer Zip-Datei in ein bestimmtes Verzeichnis?
- 12. prüfen, ob eine Datei oder ein Verzeichnis in Java
- 13. Kopieren Sie ein Verzeichnis auf ein anderes Laufwerk
- 14. Kann ich ein PhotoImage auf Python kopieren?
- 15. Wie kann ich SSH direkt in ein bestimmtes Verzeichnis?
- 16. Gulp Kopieren von Dateien von einem Verzeichnis in ein anderes
- 17. Kopieren Sie die Datei in ein Verzeichnis mit Python
- 18. Kopieren Sie ein ganzes Verzeichnis
- 19. Common Lisp - Wie sagt man, wenn ein Pfadname auf eine reguläre Datei oder ein Verzeichnis verweist?
- 20. Kopieren Verzeichnisinhalte in ein Verzeichnis mit Python
- 21. vb.net Kopieren der Datei in ein anderes Verzeichnis
- 22. Wie kann ich ein NetStream-Objekt kopieren?
- 23. Wie kann ich meine visuelle Java-Anwendung in ein benutzerdefiniertes Verzeichnis kopieren?
- 24. Kopieren Sie ein ganzes Verzeichnis mit Phing
- 25. Wie kann ich ein Verzeichnis sperren?
- 26. Überprüfen Sie, ob Argument eine Datei oder ein Verzeichnis ist
- 27. Wie kann ich eine Datei in ein nicht leeres Verzeichnis verschieben?
- 28. Wie verschiebe ich Datei A auf eine andere Partition oder ein anderes Gerät in Node.js?
- 29. Kopieren von Dateien aus einem Verzeichnis in ein anderes
Um die Docker-Dokumentation zu zitieren: Die Kopie folgt den folgenden Regeln: Der Pfad muss im Kontext des Builds sein; –
Mögliches Duplikat von [Docker: Hinzufügen einer Datei aus einem übergeordneten Verzeichnis] (http://stackoverflow.com/questions/24537340/docker-adding-a-file-from-a-parent-directory) – Gordon