Šių laikų IT tendencija - mikroservisai. Todėl net paprasčiausius projektus bandoma konteinerizuoti. Net statinius projektus.
Kaip tik tokie yra visi mano projektai. Ne išimtis ir šis tinklaraštis.
Konteinerizuotus projektus lengviau deploy’inti, monitorinti, daryti atsargines kopijas ir svarbiausia priežastis - plėsti (angl. „scale“).
Paversti savo statinę svetainę į konteinerizuotą mikroservisą yra itin lengva kai tai darai su Docker.
Įsivaizduokime, kad mūsų projektas guli src
kataloge. Tuomet kataloge virš jo susikurkime Dockerfile
:
FROM nginx
ENV APP_HOME /usr/share/nginx/html
WORKDIR $APP_HOME
COPY src $APP_HOME
EXPOSE 80
Tiek nedaug reikia nurodyti nginx
, kad mūsų projekto katalogą įkeltų į tipinę nginx
vietą - /usr/share/nginx/html
. Pagal nutylėjimą nginx
rodys viską iš šio katalogo (paveiksliukus, media, HTML ir pan.).
Viską galėtume gerokai sutrumpinti, pavyzdžiui neturėti $APP_HOME
env kintamojo kūrimo - bet tada teks ilgą kelią rašyti kelis kartus. Todėl vadovaukitės DRY principu.
Galima neturėti WORKDIR $APP_HOME
sakinio, bet jis labai gelbėja, kada norite prisijungti prie Docker konteinerio ir pažiūrėti ar yra ten kažkokių problemų. Tuomet komanda docker exec -it svetaine bash
Jus nukels tiesiai į /usr/share/nginx/html
- sutaupysite laiko.
Sukurti atvaizdą galima su:
docker build -t svetaine .
O pasinaudoti juo taip:
docker run -p 8001:80 svetaine
Ir naršyklėje surinkę adresą http://127.0.0.1:8001
matysite savo svetainės turinį.
Tą patį galima padaryti ir produkcinėje sistemoje.
Tuo pačiu tai dar viena puiki alternatyva Python SimpleHTTPServer arba Node http-server moduliui.