Dlatego głównym zamiarem było dokeryzowanie aplikacji typu słoik tłuszczu i umieszczenie jej w łodydze Elasticbean. Problem tkwi w kontekście. Trochę głupio jest dodawać tak dużo kontekstu do dockera, jeśli wszystko, czego potrzebuję, to w rzeczywistości pojedynczy plik jar.
Bawiłem się plikiem .dockerignore, ale zgubiłem się. Próbowałem użyć negacji gitignore, ale to nie działa.
*
!Dockerfile
*/
!target/
target/*
!target/*.jar
Jest też coś takiego w przypadku wyrażenia regularnego, ale wygląda na to, że skomplikowane wyrażenie regularne nie jest obsługiwane.
^((?!Dockerfile).)*$
Próbowałem również szukać w stackoverflow i te dwa to wszystko, co znalazłem:
To pytanie może być podobne do drugiego, ale myślę, że jest to niewielka różnica, ponieważ w tym miejscu chcę tylko dołączyć pojedynczy plik do kontekstu.
Każda pomoc zostanie doceniona.
Odpowiedzi:
Jeśli chcesz zignorować wszystko oprócz niektórych katalogów lub plików, a także zignorować niepotrzebne pliki w tych dozwolonych katalogach, możesz użyć następującego
.dockerignore
pliku:źródło
*
w pierwszej linii (zamiast**
). Cytat: „możesz chcieć określić, które pliki mają być uwzględnione w kontekście, a nie które mają być wykluczone. Aby to osiągnąć, określ*
jako pierwszy wzorzec, a po nim jeden lub więcej!
wzorców wyjątków”.Z odwołania do pliku dockerfile :
Tak więc wiersz zawierający po prostu ** zignoruje wszystko w tym samym katalogu co plik Dockerfile.
Zgodnie z oczekiwaniami, wykrzyknik może być następnie użyty do odniesienia się do plików, które chcesz wysłać do demona Dockera.
źródło
**
jest, aby plik trafiał na początek pliku, w przeciwnym razie wykluczenia zostaną zignorowane. Docker używa ostatniej pasującej reguły jako reguły „końcowej”, więc jeśli**
jest ostatnią, dopasuje wszystko.**
w pierwszej linii i!foo
w następnej, jeślifoo
jest to jedyny plik, który chcesz dołączyć.Może to zabrzmieć dziwnie, ale jeśli potrzebujesz tylko jednego pliku jar, możesz utworzyć folder „docker” w systemie kompilacji, który zawiera plik Dockerfile. Po uruchomieniu kompilacji, skrypty kompilacji skopiuj pojedynczy plik jar do „docker”, a następnie wykonaj kompilację obrazu Dockera (z wnętrza folderu „docker”) i po zakończeniu wypchnij do rejestru Dockera.
źródło