Jak zainstalować określoną wersję pakietu w Alpine?
Mam Dockerfile
do zbudowania obrazu Docker, który jest oparty na Alpine Linux. Teraz muszę zainstalować pakiet jako część tego Dockerfile
.
Obecnie mam:
RUN apk update && \
apk upgrade && \
apk add git
Najwyraźniej jest to zły pomysł, ponieważ wynik jest niedeterministyczny. Zamiast tego, zależy od punktu w czasie, w którym buduję obraz, która wersja git
jest instalowana.
Jaki jest poprawny sposób na zrobienie tego?
Domyślam się, że muszę powiedzieć updated
, upgrade
i add
, których wersji użyć, ale jak to zrobić?
Widziałem, że apk
obsługuje przypinanie repozytoriów, ale to nie jest to, czego chcę (przynajmniej tak mi się wydaje), ponieważ nie chcę przypinać repozytorium, ale pakiet.
Innymi słowy: Gdyby git
można było zainstalować przez npm
, byłbym w stanie uruchomić:
npm install git@1.9.2
(lub jakąkolwiek wersję, którą chcę mieć). Jaki jest odpowiednik tego dla Alpine Linux?