Repositooriumite seadistamine Composeriga

Ingmar Aasoja
Jaga:

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?

Repositooriumite seadistamine Composeriga

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.euCode 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 publicCode 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 publicCode 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.

Populaarsed postitused

Zone+ AI Assistent nüüd veelgi targem

Ingmar Aasoja
Zone+ AI Assistent WordPressile on leidnud kasutust juba lugematute kodulehtede ehitamisel. Hiljuti saabus uuendus, mis annab rohkem valikuid nii uue lehe...

Täpitähtedega domeen sinu brändi teenistuses

Ants
Kaasaegses digimaailmas on domeeninimed brändi identiteedi olulised nurgakivid. Sinu domeeninimi on esimene asi, millega potentsiaalne klient veebis kokku...

Eesti õpilased puhuvad vanadesse serveritesse uut elu

Sten
Igal aastal jääb meil peale riistvarauuendusi seisma tornide viisi täiesti töökorras servereid. Oleme otsustanud toetada haridust ja innovatsiooni,...

Lokaliseerimine ja kvaliteetne tõlge: sild globaalsete turgude vahel

Lemme Suve
Digiajastul, kus piirid on muutunud virtuaalseks ja ettevõtted võivad jõuda klientideni üle kogu maailma, on kvaliteetne ja hästi läbimõeldud suhtlus...