2017-02-22 2 views
5

Ich versuche, alle versteckten Dateien (beginnend mit einem Punkt) aus allen Verzeichnissen des Projekts aus meinem Docker-Bild auszuschließen.Ausschließen aller versteckten Dateien mit .dockerignore

.git und .gitingore auszuschließen: .git*

alle .keep Dateien auszuschließen: **/.keep

Für alle versteckten Dateien funktioniert, habe ich versucht: **/.*, Aber das schließt alle Dateien einen Punkt enthält, wie **/*.* tut.

Antwort

2

.dockerignore files versuchen Go's filepath.Match Regeln mit dem Zusatz eines Globs wie ** zu einem beliebigen Verzeichnis in einem Pfad zu folgen. Sie sind also nicht genau dasselbe wie Glob-Muster oder versuchen es zu sein. In der Tat implementiert Docker it's own parser, so dass es nicht einmal filepath.Match mehr verwendet.

Die Verwendung von dir/.* und dir/*/.* funktioniert wie erwartet. Aber dir/**/.* scheint nicht die ganze Zeit zu arbeiten.

Diese specific issue should be resolved aber ich denke, ich habe das gleiche Verhalten in 1.13.1 unter bestimmten Umständen gesehen.

Also mit einem .dockerignore von dir/**/.* wird die Datei dir/file.ext ausgeschlossen, aber dir/subdir/file.ext wird enthalten sein.

Dies ist wahrscheinlich lohnt sich das Öffnen einer new issue with Docker if you have a specific reproducible case on 1.13

Verwandte Themen