Pakettivarastojen konfigurointi Composerilla
Tämä on kolmas osa blogikirjoitusten sarjasta, joka käsittelee Composer-nimistä paketinhallintaohjelmaa, joka helpottaa WWW-sivustojen kehittämistä. Aiemmin esittelin composer.phar-ohjelman käytön aloittamista ja yleisimpiä komentoja. Seuraavaksi vastaamme kysymykseen siitä, miten Composerilla voidaan asentaa itse tehty paketti siten, että jokin muu paketti tulee riippuvaiseksi siitä.
Kun asennat riippuvuutta composer install
-komennolla, kyseisen paketin tiedot haetaan ensin julkisesta packagist.org-rekisteristä. Jos haluat pystyä asentamaan kotitekoisen paketin samalla komennolla, siihen on useita vaihtoehtoja.
Packagist.org
Jos kyseessä on avoimen lähdekoodin sovellus, se voidaan kirjata julkiseen packagist.org-rekisteriin, joka skannaa julkista Git-pakettivarastoa joko manuaalisesti tai automaattisesti webhook-menetelmällä, ja paketti asentuu ilman lisätoimia. Ainoa ehto on, että paketin nimen tulee olla yksilöllinen.
Composer.json-tiedoston konfigurointi
Suojattuja Git-pakettivarastojen voi konfiguroida myös suoraan sen projektin composer.json-tiedostossa, jolle kyseinen riippuvuus halutaan asentaa. Tätä varten sinun on konfiguroitava haluamasi paketit repositories
-kohtaan.
{
"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)
Tämä ratkaisu tukee Gitin lisäksi versionhallintajärjestelmiä Subversion, Mercurial ja Fossil.
Suojatun rekisterin käyttö
Jos suojattuja paketteja on useita ja niiden hallinta composer.json-tiedostoissa on monimutkaisempaa, voit käyttää myös omaa rekisteriäsi. Siihenkin on useita vaihtoehtoja. Voit esimerkiksi käyttää maksullista Private Packagist-palvelua, joka auttaa myös julkisten riippuvuuksien hallinnassa seuraamaan tietoturva-aukkoja sekä heijastamaan koodia tapauksissa, joissa jokin kirjasto ei ole tavoitettavissa silloin, kun sitä tarvitaan.
Vaihtoehtoisesti tällaista rekisteriä voi isännöidä myös itse. Siihen sopii hyvin myös Zone-isännöintiohjelmistossa toimiva Satis, joka tuottaa Composerille konfigurointitiedostolla luettavissa olevan staattisen rekisterin.
Satis-työkalun asennus
Ensin asennamme Satisin virtuaalipalvelimelle. Tätä varten kirjaudumme palvelimelle SSH:n kautta ja siirrymme verkkotunnuksen kokoelmahakemistoon:
cd verkkotunnukset/www.upeanakoala.eu
Code language: Bash (bash)
Sitten asennamme sovelluksen:
# kloonaamme satisin git-pakettivaraston
git
clone
https://github.com/composer/satis.git
# asennamme tarvittavat riippuvuudet
cd
satis
composer install
# luomme hakemiston, jossa alamme näyttää pakettivarastoja
mkdir public
WWW-palvelimen konfigurointi
Julkaistaksemme pakettivaraston lisäämme palvelimellemme aliverkkotunnuksen nimeltä satis.upeanakoala.eu
ja asetamme Hakemisto palvelimella-arvoksi satis/public
.
Satisin konfigurointi
Sitten luomme palvelimelle satis.json
-tiedoston ja sijoitamme sen yhdellä tasolla aliverkkotunnusta palvelevan hakemiston yläpuolelle eli satis
-hakemistoon. Yhden osan tiedoston sisällöstä muodostaa yleinen registry–konfiguraatio ja toisen osan pakettivarastojen kokonaisuus, jonka haluat lisätä sinne. Niillä on kuitenkin täsmälleen sama rakenne kuin composer.json-tiedoston repositories
-kohdalla.
Tiedoston sisältö voisi näyttää seuraavalta:
{
"name": "my/repository",
"homepage": "https://satis.upeanakoala.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)
Kaikki pakettivarastot, jotka haluat lisätä rekisteriin, on konfiguroitava tässä tiedostossa repositories
-kohtaan.
Satisin käynnistäminen
Jotta voit aloittaa oman rekisterisi käytön, sinun on luotava konfigurointitiedostosta rekisteri. Tämä komento käy läpi kaikki konfiguroidut Git-pakettivarastot ja luo niitä vastaavan sisällön, joka näkyy verkosta. Sitä varten tulee suorittaa satis
-hakemistossa seuraava komento:
php bin/satis build satis.json public
Code language: Bash (bash)
Jos avaat sitten selaimellasi satis.upeanakoala.eu
-aliverkkotunnuksen, näet luodun rekisterin ja saatavilla olevat paketit. Tarkempia konfigurointivaihtoehtoja löytyy dokumentaatiosta, jonka käytöstä voi lukea lisää myös Satisin dokumentaatiosta. Yksinkertaisuussyistä emme kuitenkaan konfiguroi sitä tässä esimerkissä.
Suojatun rekisterin käyttöönotto
Jotta kyseisessä rekisterissä olevia paketteja voidaan ottaa käyttöön, on konfiguroitava asianmukaisen paketin composer.json
-aliverkkotunnus:
"repositories": [
{
"type": "composer",
"url": "https://satis.upeanakoala.eu"
}
]
Code language: JSON / JSON with Comments (json)
Sitten voitkin asentaa paketit, jotka ovat mahdollisia viitatussa rekisterissä.
Lisäksi
Vaikka meillä onkin nyt täysin toimiva, suojattu ja Composerilla käytettävissä oleva rekisteri, on silti huomattava pari asiaa.
1. Todennus
Ei haittaa, jos voit rajoittaa pääsyä aliverkkotunnukseen esimerkiksi IP-osoitteilla, jotka liittyvät kyseistä rekisteriä käyttäviin palvelimiin, tai konfiguroida HTTP basic auth -salasanatodennuksen.
2. Automaattinen päivittäminen
Jotta pakettivarastojen rekisteri päivittyy automaattisesti, kannattaa lisätä päivityskomento cd www.upeanakoala.eu/satis [[$PHP]] bin/satis build satis.json public
määräajoin suoritettaviin tehtäviin ja suorittaa se kohtuullisin väliajoin – esimerkiksi kerran päivässä riippuen siitä, kuinka usein kyseiset paketit saattavat päivittyä.
3. Pakettien heijastaminen
Jos haluat ottaa ohjat omiin käsiisi ja olla riippumaton Githubista, voit myös heijastaa konfiguroidut paketit samalle Satis-palvelimelle. Tämä vähentää myös ulkoisen verkon liikennettä ja nopeuttaa asennusta Zonen palvelujen sisällä. Satisia voi kuitenkin käyttää myös julkisten pakettien heijastamiseen.
Heijastamista varten on lisättävä satis.json
-tiedostoon seuraavat rivit:
...
"archive": {
"directory": "dist",
"format": "tar",
"skip-dev": true
}
...
Code language: JSON / JSON with Comments (json)
Jo seuraavalla suorituskerralla nämä paketit asentuvat public
-kansioon. Muista kuitenkin, että virtuaalipalvelimella on rajoitetusti levytilaa, joten kannattaa asentaa heijastettaviksi vain välttämättömät pakettivarastot.