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?