Für eine Zuweisung benötigt der Markierer eine Dockerdatei, um den Container meines Projekts zu erstellen, aber ich habe ziemlich komplexe Aufgaben. Ich muss auf die richtige Weise zusammenarbeiten, damit meine Dockerdatei für mich nützlich ist. Deshalb baue ich gerade eine Datei, die jedes Mal 30 Minuten braucht, nur um zu sehen, ob kleine Änderungen das Ergebnis in der richtigen Weise beeinflussen, also meine Frage ist, gibt es einen besseren Weg, dies zu tun?Ich versuche, die perfekte Docker bauen Datei zu erstellen, muss ich es jedes Mal von Grund auf neu bauen?
Antwort
Die Dockerfile best practices, oder eine frühere Frage helfen könnten: Creating a Dockerfile - docker starts from scratch on each new build
Nach meiner Erfahrung eine vollständige Erstellung jedes Mal bedeutet, Sie arbeiten gegen Caching-Mechanismus der Docker, in der Regel durch COPY . .
früh in der Dockerfile haben.
Wenn die in das Image kopierten Dateien dann verwendet werden, um einen Paketmanager zu steuern, oder andere Quellen herunterladen - versuchen Sie, nur das Skript oder die Anforderungsdatei zu kopieren und dann die restlichen Quellen zu kopieren.
ein vereinfachtes Python Beispiel aus der Best Practices angepasst Verlinken:
COPY requirements.txt .
RUN pip install -r requirements.txt
COPY . .
Mit dieser Struktur, solange requirements.txt nicht ändert, die ersten COPY
und folgende RUN
Befehl Verwendung zwischengespeichert Schichten und Modernisierungen sind viel schneller.
Der erste Tipp verwendet COPY/ADD für Artefakte, die heruntergeladen werden müssen, wenn Docker erstellt wird.
Der zweite Tipp ist, Sie können eine Dockerfile für jeden Schritt erstellen und sie in den nächsten Schritten wiederverwenden.
zum Beispiel, wenn Sie Postgres db installieren und Wildfly in Ihrem Image installieren möchten. Sie können nur mit dem Erstellen einer Dockerfile für PostgresDB beginnen und diese erstellen, um Ihr Docker-Image zu erstellen. Dann eine andere Dockerfile schaffen, die
von your-Postgres Bild wiederzuverwendenFROM your-postgres
.....
und so weiter ...
- 1. Docker Bild mit Steg zu bauen - wann sollte ich bauen?
- 2. RavenDB.Client.Embedded verschwindet, nachdem ich versuche, es zu bauen
- 3. Fehlermeldung, wenn ich versuche, Adblocker bauen
- 4. GIS-Apps von Grund auf neu erstellen?
- 5. jenkins pipeline docker bauen auf docker agent
- 6. interaktiver docker bauen von dockerfile?
- 7. Oculus Mobile SDK Beispielprojektfehler, wenn ich versuche zu bauen: compileReleaseNdk:
- 8. Muss ich jedes Cookie jedes Mal aktualisieren?
- 9. Docker bauen Argument
- 10. Docker bauen + private NPM (+ private Docker Hub)
- 11. Warum muss ich jedes Mal Kategorien oder Seiten erstellen - Wordpress.?
- 12. Running GUI während Docker bauen
- 13. Bauen Docker Bild auf verschiedenen Host-O
- 14. IOException jedes Mal, wenn ich versuche, alles auf Android-Emulator
- 15. Maven: bauen Docker Bilder von Kindern Projekte
- 16. Docker bauen Ubuntu: Xenial Problem
- 17. Docker bauen argument und kopieren
- 18. Probleme beim Starten Docker bauen auf Fenster
- 19. SSIS Staging-Tabelle - ok, um jedes Mal neu zu erstellen?
- 20. Bauen Sie ein Docker Bild oben auf CodeBuild Docker Bild
- 21. Docker von debian: wheezy kann nicht bauen
- 22. Ich muss jedes Mal in Android Studio und Gradle neu erstellen
- 23. Docker bauen scheitert in Jhipster
- 24. kann ich Swing-Anwendungen auf Eclipse bauen?
- 25. starten bash bash script auf docker bauen von windows system
- 26. Wie Paypal Button Arbeit und bauen ein von Grund auf neu
- 27. kann nicht bauen Docker Bild
- 28. sollte ich Komponist laufen in meinem Docker installieren bauen
- 29. Soll ich jedes Mal eine brandneue SqlConnection erstellen oder versuchen, eine bestehende Verbindung jedes Mal neu zu öffnen?
- 30. Wie kann ich docker-compose bauen ein Bild von einem Remote-Git-Repository erstellen?
Und du hast nicht die dockerfile hier zeigen? – manojlds
meine Frage ist über den Prozess, nicht was ist in der Dockerfile –
In Ermangelung einer Docker-Datei zu überprüfen, würde ich verweisen Sie auf die Leitlinien Dokumentation: https://docs.docker.com/engine/userguide/eng-image/dockerfile_best-practices/Eine weitere Übung, die ich befolge, ist die Erstellung von Basisbildern basierend auf meinem "Technologie" -Stack. So hat jede Anwendung eine sehr minimale und unkomplizierte Dockerfile –