Hoe installeer ik een specifieke pakketversie in Alpine?
Ik heb een Dockerfile
om een Docker-image te bouwen die is gebaseerd op Alpine Linux. Nu moet ik een pakket installeren als onderdeel van deze Dockerfile
.
Momenteel heb ik:
RUN apk update && \
apk upgrade && \
apk add git
Blijkbaar is dit een slecht idee, want het resultaat is niet-deterministisch. In plaats daarvan hangt het af van het tijdstip waarop ik de image bouw, welke versie van git
geïnstalleerd wordt.
Wat is de juiste manier om dit te doen?
Ik neem aan dat ik updated
, upgrade
en add
moet vertellen welke versies gebruikt moeten worden, maar hoe doe ik dat?
Ik heb gezien dat apk
pinning van repositories ondersteunt, maar dat is niet wat ik wil (tenminste dat denk ik), omdat ik niet een repository wil pinnen, maar een package.
Met andere woorden: Als git
geïnstalleerd zou kunnen worden via npm
, dan zou ik kunnen draaien:
npm install git@1.9.2
(of welke versie ik ook wil hebben). Wat is het equivalent hiervan voor Alpine Linux?