Die Hauptabsicht war es also, eine Fettglasanwendung anzudocken und in Elasticbeanstalk zu legen. Das Problem liegt im Kontext. Es ist ein bisschen dumm, so viel Kontext in Docker hinzuzufügen, wenn ich nur eine einzige JAR-Datei brauche.
Ich habe mit der .dockerignore-Datei herumgespielt, aber ich bin verloren. Ich habe versucht, die Gitignore-Negation zu verwenden, aber es funktioniert nicht.
*
!Dockerfile
*/
!target/
target/*
!target/*.jar
Es gibt auch das Ding mit Regex, aber es scheint, dass komplizierter Regex nicht unterstützt wird.
^((?!Dockerfile).)*$
Ich habe auch versucht, im Stackoverflow zu suchen, und diese beiden sind alles, was ich gefunden habe:
Diese Frage ähnelt vielleicht der zweiten, aber ich denke, es ist ein kleiner Unterschied, da ich hier nur eine einzelne Datei in den Kontext aufnehmen möchte.
Jede Hilfe wird geschätzt.
Antworten:
Wenn Sie alles außer einigen Verzeichnissen oder Dateien ignorieren und auch einige unnötige Dateien in diesen zulässigen Verzeichnissen ignorieren müssen, können Sie die folgende
.dockerignore
Datei verwenden:quelle
*
in die erste Zeile zu setzen (anstelle von**
). Zitat: "Möglicherweise möchten Sie angeben, welche Dateien in den Kontext aufgenommen werden sollen, anstatt welche ausgeschlossen werden sollen. Um dies zu erreichen, geben Sie*
als erstes Muster an, gefolgt von einem oder mehreren!
Ausnahmemustern."Aus der Dockerfile-Referenz :
Eine Zeile mit einfach ** ignoriert also alles im selben Verzeichnis wie die Docker-Datei.
Wie erwartet kann der Ausruf dann verwendet werden, um auf alle Dateien zu verweisen, die Sie an den Docker-Daemon senden möchten.
quelle
**
an den Anfang der Datei geht, da sonst die Ausschlüsse ignoriert werden. Docker verwendet die letzte übereinstimmende Regel als "endgültige" Regel. Wenn dies die letzte ist, stimmt**
sie mit allem überein.**
in der ersten Zeile und!foo
in der nächsten Zeile hinzu, ob diesfoo
die einzige Datei ist, die Sie einschließen möchten.Das mag seltsam klingen, aber wenn Sie nur eine einzige JAR-Datei benötigen, können Sie in Ihrem Build-System einen "Docker" -Ordner erstellen, der Ihre Docker-Datei enthält. Wenn Sie Ihre Builds ausführen, lassen Sie die Build-Skripte die einzelne JAR-Datei in "Docker" kopieren, führen Sie dann den Docker-Image-Build (aus dem Ordner "Docker") aus und senden Sie ihn anschließend an Ihre Docker-Registrierung.
quelle