Jak przekazać argumenty do pliku Dockerfile?

120

Używam instrukcji RUN w a, Dockerfileaby zainstalować rpm

RUN yum -y install samplerpm-2.3

Jednak chcę przekazać jako argument wartość „2.3”. Moja instrukcja RUN powinna wyglądać mniej więcej tak:

RUN yum -y install samplerpm-$arg

gdzie $arg=2.3

meallhour
źródło

Odpowiedzi:

152

Szukasz --build-argi ARGinstrukcji. Są to nowe od wersji Docker 1.9. Sprawdź https://docs.docker.com/engine/reference/builder/#arg . Umożliwi to dodawanie ARG argdo, Dockerfilea następnie budowanie z docker build --build-arg arg=2.3 ..

Andy Shinn
źródło
1
Po wykonaniu tego wszystkiego otrzymuję błąd ** Brak dostępnego pakietu samplerpm- $ arg. ** Wygląda na to, że wartość argumentu 2.3 nie jest zastępowana.
Meallhour
1
Prawdopodobnie będziesz musiał utworzyć nowe pytanie za pomocą Dockerfilepolecenia użytego do kompilacji i błędu, abym mógł przy tym pomóc.
Andy Shinn
2
a co ze zmiennymi env zamiast tego?
Alexander Mills