Käesolevaga toome lugejani veebiarenduse tööd hõlbustava Composeri-nimelise pakihalduriga seotud blogiseeria kolmanda postituse. Eelnevalt tutvustasin, kuidas alustada composer.phar kasutamist ning tegime põgusalt tutvust ka enamlevinud käskudega. Järgmisena vastame küsimusele: kuidas saab Composeriga paigaldada endaloodud pakki nii, et mõni teine pakk muutuks sellest sõltuvaks?
Kui paigaldada sõltuvust käsuga composer install
, siis otsitakse vastava paki info esmalt avalikust packagist.org registrist. Kui soovid, et omatehtud pakki saaks paigaldada sama käsuga, siis selleks on mitmeid variante.
Packagist.org
Kui tegemist on avatud lähtekoodiga rakendusega, siis on see võimalik registreerida avalikus packagist.org registris, mis skännib avalikult kättesaadavat Git repositooriumi kas manuaalselt või siis webhook abiga automaatselt ning paki paigaldamine toimub ilma lisategevusteta. Ainuke tingimus on siin vaid see, et paki nimi peab olema unikaalne.
Seadistades composer.json faili
Privaatseid Git repositooriume saab seadistada ka otse projekti composer.json failis, millele soovitakse vastav sõltuvus paigaldada. Selleks on vaja soovitud pakid seadistada repositories
pessa.
{
"repositories": [
{
"type": "vcs",
"url": "git@minu-git-aadress.org:vendor/minut-git-repo.git"
}
],
"require": {
"vendor/minut-git-repo": "dev-master"
}
}
Code language: JSON / JSON with Comments (json)
Kusjuures – kirjeldatud lahendus toetab lisaks Git’ile ka Subversioni, Merguriali ja Fossili.
Privaatse registri kasutamine
Kui privaatseid pakke on mitmeid ning composer.json failides läheb nende haldamine juba keerukamaks, siis on sul võimalik kasutada ka oma registrit. Ka selleks on mitmeid variante. Nii näiteks on võimalik kasutada tasulist Private Packagist teenust, mis aitab ka avalike sõltuvuste haldamise korral monitoorida turvanõrkusi ja peegeldada koodi juhtudel, kui mõni teek ei ole vajalikul hetkel kättesaadav.
Teise lahendusena on võimalik sellist registrit ka ise majutada. Selleks sobib kenasti näiteks ka Zone majutustarkvaras töötav Satis, mis loob Composerile konfiguratsioonifaili abil loetava staatilise registri.
Satis’e paigaldamine
Esmalt paigaldame Satise virtuaalserverisse. Selleks siseneme serverisse üle SSH ning navigeerime domeeni kogukataloogi:
cd domeenid/www.miljonivaade.eu
Code language: Bash (bash)
Seejärel paigaldame rakenduse:
# kloonime satise git'i repo
git clone https://github.com/composer/satis.git
# paigaldame vajalikud sõltuvused
cd satis
composer install
# loome kataloogi, kus hakkame repositooriume kuvama
mkdir public
Code language: Bash (bash)
Veebiserveri seadistamine
Repositooriumi avaldamiseks lisame oma serverisse alamdomeeni nimega satis.miljonivaade.eu
ning määrame Kataloog serveris väärtuseks satis/public
.
Satise seadistamine
Seejärel loome serverisse satis.json
faili ning asetame selle alamdomeeni serveerivast kataloogist ühe astme võrra kõrgemale ehk kataloogi satis
. Faili sisu üheks osaks on üldine registry seadistus ning teiseks massiiv soovitud repositooriumitest, mida oled soovinud sinna lisada. Kusjuures struktuur on nendel täpselt sama, nagu composer.json’i repositories
pesas.
Faili sisu võiks tinglikult välja näha järgmine:
{
"name": "my/repository",
"homepage": "https://satis.miljonivaade.eu",
"repositories": [
{
"type": "vcs",
"url": "git@minu-git-aadress.org:vendor/minut-git-repo.git"
}
],
"require-all": true
}
Code language: JSON / JSON with Comments (json)
Kõik repositooriumid, mida soovid lisada oma registrisse, tuleb selles failis seadistada repositories
pessa.
Satise käivitamine
Selleks, et hakata oma registrit kasutama, on vaja genereerida konfiguratsioonifailist register. Kõnealune käsk vaatab läbi kõik seadistatud Git repositooriumid ning loob sellele vastava sisu, mis on veebist eksponeeritav. Selleks tuleb kataloogis satis
käivitada järgmine käsk:
php bin/satis build satis.json public
Code language: Bash (bash)
Kui seejärel avada alamdomeen satis.miljonivaade.eu
oma veebibrauseris, siis on seal näha loodud registrit ning saadaval olevaid pakke. Täpsemaid võimalusi seadistamiseks võid leida dokumentatsioonist, mille kasutamisest saab täpsemalt lugeda omakorda ka Satise dokumentatsioonist. Kirjelduse lihtsuse huvides me käesolevas näidises seda seadistama siiski ei hakka.
Privaatse registri kasutusele võtmine
Selleks, et kõnealuses registris olevaid pakke saaks kasutusele võtta, tuleb seadistada vastava paki composer.json
alamdomeen:
"repositories": [
{
"type": "composer",
"url": "https://satis.miljonivaade.eu"
}
]
Code language: JSON / JSON with Comments (json)
Seejärel saabki paigaldada pakke, mis viidatud registri piires võimalik.
Lisaks
Ehkki nüüd on meil täiesti töötav, privaatne ja Composeriga kasutatav register olemas, on siiski mõistlik tähelepanu pöörada veel paarile asjale.
1. Autentimine
Paha ei tee, kui saad oma aladomeenile ligipääsu piirata näiteks IP’dega, mis on seotud serveritega, mis seda registrit kasutavad või siis seadistada HTTP basic auth salasõnaga autentimine.
2. Automaatne uuendamine
Selleks, et repositooriumite register automaatselt uueneks, soovitan lisada uuendamise käsu cd www.miljonivaade.eu/satis && [[$PHP]] bin/satis build satis.json public
perioodilsite tööde alla ning lasta käivitada sellel mõistliku sagedusega – näiteks kord päevas olenevalt sellest, kui tihti vastavad pakid uueneda võivad.
3. Pakkide peegeldamine
Selleks, et haarata ohjad enda kätte ning mitte sõltuga Github’ist, on võimalik seadistatud pakid ka peegeldada samasse Satise serverisse. See vähendab ka välisvõrgu liiklust ning teeb ka Zone teenuste siseselt paigaldamise kiiremaks. Kusjuures – Satise abil saab peegeldada ka avalikke pakke.
Peegeldamiseks tuleb satis.json
faili lisada järgmised read:
...
"archive": {
"directory": "dist",
"format": "tar",
"skip-dev": true
}
...
Code language: JSON / JSON with Comments (json)
Juba järgmisel käivitamisel paigaldatakse need pakid public
kausta. Tähelepanu tuleb siiski pöörata veel ka sellele, et virtuaalserveri kettamaht on piiratud ning peegeldamiseks tasub paigaldada ainult vajalikud repositooriumid.