Specifikus node.js verzió telepítese Linux Docker konténerre

Ismét egy olyan problémába futottam, aminek a megoldása egy jó adag keresgélést és kísérletezést húzott maga után, úgyhogy megosztom a megoldást, hátha valakinek leegyszerűsítem a dolgát.

Történt a minap, hogy egy új szerveralkalmazást kellett írnom, ezúttal node.js-ben. Nem csak maga a node volt a lényeg, hanem a tesztelés egy speciális package/app telepítését kívánta meg, aminek a nevét le sem merem írni. Igen, egy google-dologról van szó. (De kezet mostam, miután használtam! :D)
Ez a kis cucc is node-ot kér maga alá, de nem a google készítette. Mivel egy kis, pár ember által karban tartott program, nincs felhúzva a legújabb node verzióra. Na, itt kezdődtek a bajok.
Ja, igen, fontos, hogy teszteléshez mindenképpen dockerben akartam futtatni az appot, meg minden egyebet, ami a teszteléséhez szükséges.
Első körben tehát nekimentem a dockerhubon elérhető node image-ekkel. A slim és az alpine nyűgjei után gyorsan a “nagy” node-image-re bíztam magam. Igenám, de a legutóbbi, 9.9.0-es verzió inkompatibilisnak bizonyult a programmal, amit futtatnék…
Oké, akkor keressünk egy régebbi image-et! Hogy ne csak vaktába lövöldözzünk, nézzük meg, milyen verziót akar magának a program! 6.11.valami. Csodás, akkor húzzunk le arra egy node image-et!
De nincs. 6.11-ből nem készült.
Megpróbáltam a 6.13-assal, de nem működött.*
Itt döntöttem úgy, hogy akkor fogok valami linux image-et, és felrakom rá kézzel(-lábbal) a node-ot, lesz, ami lesz.
A rengeteg nyűglődés, hibaüzenet és egyéb sztorijával nem untatnék senkit, inkább itt a végleges Dockerfile (releváns részletei):
FROM ubuntu
...
RUN apt-get update && apt-get install -y apt-transport-https
RUN apt-get install -y curl
RUN curl --silent --location https://deb.nodesource.com/setup_6.x | bash -
RUN apt-get install -y nodejs
RUN apt-get install -y build-essential
...
ENTRYPOINT [ "bash", "start.sh" ]
Az image természetesen lehet egy másik linux is, igazság szerint nem vanilla ubuntut használtam a végén, mert van kisebb is. A legelső RUN azért kell, hogy https csatornán keresztül is lehessen telepíteni. A következő, hogy legyen cURL telepítve, majd jön a node megfelelő verziójának lekapása (setup_6.x…), telepítése, és ne felejtsük el, hogy mindig a -y kapcsolóval kell installt hívni, mert nem tudunk telepítés közben válaszolgatni az apt-get kérdéseire.
Ennyi, remélem, valaki hasznát veszi majd.
*: slusszpoén, hogy utóbb megfejtettem, hogy mégiscsak megy 6.13-mal, de addigra már aaaannyira mindegy volt. 🙂

Szerző: Fülöp Dávid

I'm a software developer, trainer, Microsoft MVP interested in .NET and related technologies. Currently mostly .NET Core, Docker, Kubernetes...

Vélemény, hozzászólás?

Adatok megadása vagy bejelentkezés valamelyik ikonnal:

WordPress.com Logo

Hozzászólhat a WordPress.com felhasználói fiók használatával. Kilépés /  Módosítás )

Google kép

Hozzászólhat a Google felhasználói fiók használatával. Kilépés /  Módosítás )

Twitter kép

Hozzászólhat a Twitter felhasználói fiók használatával. Kilépés /  Módosítás )

Facebook kép

Hozzászólhat a Facebook felhasználói fiók használatával. Kilépés /  Módosítás )

Kapcsolódás: %s