2017-05-17 9 views
10

Mam plik Dockerfile rozszerzający FROM obraz, który deklaruje VOLUME. Czy istnieje sposób na zastąpienie dyrektywy VOLUME w taki sposób, że "usuwa" VOLUME?"Usuń" wolumin w pliku Dockerfilm

+0

Zobacz [* Zresetuj właściwości odziedziczone z obrazu nadrzędnego *] (https://github.com/moby/moby/issues/3465) (otwarty problem w chwili pisania). – saaj

+0

Mam ten sam problem i musiałem spędzić wiele godzin próbując dowiedzieć się, dlaczego dany subdir go nie zapisał. W końcu odkryłem, że niektóre poziomy wyżej, ktoś był "sprytny", aby przypisać VOLUME do tego konkretnego katalogu:/ – BjornW

Odpowiedz

13

nr

Jedynym sposobem, aby to zrobić, to jeśli sklonować Dockerfile obrazu używanego jako podstawy jednego (jednej w FROM) i zdjąć dyrektywę VOLUME ręcznie. Następnie skompiluj go i używaj jako swojego podstawowego w swojej FROM.

+0

Czy istnieje powód takiego ograniczenia? Myślę, że może to być związane z bezpieczeństwem, ale nie mogę wymyślić, w jaki sposób nadużywać usuwania woluminu w dziecięcej wersji Dockerfile. – Mitja

+0

@Mitja Nie, po prostu dyrektywy Dockerfile są napisane w taki sposób, że nie można przesłonić woluminu deklarowanego przez rodzica. Jest to specjalnie napisane [tutaj] (https://docs.docker.com/engine/reference/builder/#notes-about-specifying-volumes): 'Jeśli dowolne kroki budowania zmieniają dane w woluminie po zadeklarowaniu , zmiany te zostaną odrzucone. " –

+2

Dzięki! Brzmi dla mnie tak, jak powinno być ostrzeżenie w czasie budowy, że tak się właśnie stało. – Mitja