Asennus lokaalisti Docker
Tässä tutoriaalissa asennat Sivujetti -sivuston konttiympäristöön käyttäen Docker( Desktop)ia ja Alpine Linux -pohjaista imagea. Käyttöjärjestelmäni johon Docker Desktop on asennettu on
Step 0. Esivalmistelut
Docker Desktop tulisi olla jo asennettuna ja käynnissä koneellasi.
Step 1. Lataa sivujetti-docker ja Sivujetti
sivujetti-docker
Lataa sivujetti-docker-0.2.0.zip.
Pura lataamasi zipin sisältö Dokumentit/sivujetti-docker
-kansioon. Tällöin kansiorakenne pitäisi näyttää tältä:
Pura lataamasi zipin sisältö C:\Users\me\Dokumentit\sivujetti-docker
-kansioon. Tällöin kansiorakenne pitäisi näyttää tältä:
/Dokumentit
...
/sivujetti-docker
/config
fpm-pool.conf
...
/to-htdocs
<tyhjä>
/to-outside-htdocs
<tyhjä>
Dockerfile
...
...
Sivujetti
Lataa sivujetti-0.15.0.zip, ja pura se edellisen kohdan kansioon. Siirrä sen public
-kansio sekä index.php
-tiedosto edellisen stepin to-htdocs
-kansioon, ja backend
-kansion sisältö kokonaisuudessaan to-outside-htdocs
-kansioon. Tämän jälkeen kansiorakenne pitäisi olla:
/Dokumentit
...
/sivujetti-docker
/config
...
/to-htdocs
/public
/sivujetti
index.php
/to-outside-htdocs
/assets
/cli
...
Dockerfile
...
...
Step 2. Luo image
Tämä steppi luo koneellesi uuden imagen sivujetti-docker
, jolla voit luoda useita kontteja.
Avaa komentoriviohjelma (⌘ + väli
, hae nimellä “terminal”)
Avaa komentoriviohjelma (⊞ Win + X
ja sitten A
), tai (⊞ Win + R
, kirjoita cmd.exe
ja paina enter)
Siirry kansioon johon purit zipin komennolla cd ~/Dokumentit/sivujetti-docker/
.
Siirry kansioon johon purit zipin komennolla cd C:\Users\me\Dokumentit\sivujetti-docker
.
Luo Docker image ajamalla komento docker build -t sivujetti-docker .
Step 3. Luo ja käynnistä kontti
Tämä steppi luo uuden kontin, tallentaa sen koneellesi ja käynnistää sen. Jos myöhemmin sammutat Docker Desktopin, ja haluat käynnistää kontin uudelleen, katso Muita ohjeita > Kontin käynnistäminen myöhemmin.
Vaihtoehto 1: Ilman tiedostojen synkkausta
Aja komento docker run -it -d -p 127.0.0.1:3000:8080 sivujetti-docker
Vaihtoehto 2: Synkkauksen kanssa
Aja komento
docker run -it -d -p 127.0.0.1:3000:8080\
-w /var/www\
-v ~/Dokumentit/sivujetti-docker/to-outside-htdocs:/var/www/sivujetti-backend\
-v ~/Dokumentit/sivujetti-docker/to-htdocs:/var/www/html\
sivujetti-docker
docker run -it -d -p 127.0.0.1:3000:8080\
-w /var/www\
-v C:/Users/me/Dokumentit/sivujetti-docker/to-outside-htdocs:/var/www/sivujetti-backend\
-v C:/Users/me/Dokumentit/sivujetti-docker/to-htdocs:/var/www/html\
sivujetti-docker
Ota ylös komennon printtaaman merkkijonon alku (esim. 5e888fd9627b3e28195c18a9f6f35cb91fd025e398245d968cc8fdcc8e4527ba
-> 5e88
).
Step 4.1.
Monkeypatchaa kahta tiedostoa kontissa komennolla docker cp temp-patch.php 5e88:/var/www/sivujetti-backend/run-this-once.php && docker exec -it 5e88 /bin/sh -c 'php /var/www/sivujetti-backend/run-this-once.php && rm /var/www/sivujetti-backend/run-this-once.php'
Monkeypatchaa kahta tiedostoa kontissa komennolla docker cp temp-patch.php 5e88:/var/www/sivujetti-backend/run-this-once.php && docker exec -it 5e88 /bin/sh -c "php /var/www/sivujetti-backend/run-this-once.php && rm /var/www/sivujetti-backend/run-this-once.php"
Step 4.2.
Asenna tyhjä teema komennolla docker exec -it 5e88 php /var/www/sivujetti-backend/cli.php install-from-dir minimal sivujettiuser user@email.com userpass - - - - /
Tässä kohtaa konttiin pitäisi ilmestyä uusia tiedostoja teemalle, konfiguraatiolle sekä esim. tietokannalle. Jos loit kontin tiedostosynkkauksen kanssa, nämä uudet tiedostot pitäisi nyt näkyä myös lokaaleissa kansioissa (to-htdocs
/ to-outside-htdocs
).
Step 5. Avaa sivusto
Avaa selain osoittessa http://localhost:3000/index.php?q=/ (sivusto), http://localhost:3000/index.php?q=/jet-login (muokkaustila). Käyttäjätunnus ja salasana samat, kuin edellisessä stepissä (sivujettiuser userpass).
Uusi Sivujetti-sivustosi on nyt asennettu kontin sisään. Pidä hauskaa!
Yhteenveto
Tässä tutoriaalissa:
- Latasit sivujetti-dockerin ja sivujetin uusimman version
- Loit imagen
sivujetti-docker
- Loit uuden kontin em. imagella
- Asensit tyhjän teeman konttiin
- Avasit kontissa pyörivän sivuston selaimeen
Muita ohjeita
Kolme ensimmäistä ohjetta on hyödyllisiä silloin, jos loit kontin ilman tiedostojen synkkausta (jolloin ainoa tapa muuttaa tiedostoja kontin sisällä on komentorivin kautta).
Tiedostojen muokkaus kontin sisällä
- Mene kontin sisälle
docker exec -it 5e88 /bin/sh
- Aloita muokkaamaan tiedostoa nanolla
nano /var/www/sivujetti-backend/site/Site.php
- tai esim.
nano /var/www/html/config.php
- Tallenna tiedosto
- Ctrl + x
- y/n
- Poistu kontista
exit
Tietokannan tarkasteleminen
- Mene kontin sisälle
docker exec -it 5e88 /bin/sh
- Avaa sivuston tietokanta sqlite-repliin
sqlite3 sivujetti-backend/site/my-site.db
- Tee jotain
select title, slug from Pages;
- Poistu sqlite-replistä
.q
- Poistu kontista
exit
Sivuston exporttaaminen
Jos haluat sivuston, ja sinne tekemäsi muutokset kontista ulos, voit tehdä sen esim. seuraavasti:
- Paketoi sivusto kontin sisällä
docker exec -it 5e88 tar --create --file sivujetti-backend/exported.tar html sivujetti-backend
- Kopioi paketti kontin sisältä omalle koneellesi (jos loit kontin ilman synkkausta, muutoin se löytyy
to-outside-htdocs
kansiosta)docker cp 5e88:/var/www/sivujetti-backend/exported.tar ~/Lataukset/my-exported-site.tar
docker cp 5e88:/var/www/sivujetti-backend/exported.tar C:\Users\me\Dokumentit\Lataukset\my-exported-site.tar
- (Vapaaehtoinen) Poista paketti kontin sisältä
docker exec -it 5e88 rm sivujetti-backend/exported.tar
Nyt sivusto kokonaisuudessaan löytyy Lataukset
kansiosta koneeltasi.
Kontin käynnistäminen myöhemmin
Kontit sammuu itsekseen, kun Docker Desktop suljetaan. Jos haluat käynnistää luomasi kontin myöhemmin, voit skipata tutoriaalin kaikki stepit ja ajaa suoraan:
docker start 5e88
Kontin poistaminen
docker stop 5e88 && docker rm 5e88