Copak je to za stránky?
- Toto je hostingový server spolku PilsFree. Každý člen a jeho domácnost si může vytvořit vlastní stránky a hostovat vlastní domény. Stačí nahoře kliknout na "přihlásit". Potom ti bude umožněno vytvořit podružný účet na hostingovém a přístup do administrace.
Účet již mám vytvořen, ale dál se v tom moc nevyznám...
Je to moc komplikované. Chci jenom svůj php hosting.
- Jasně, vyber si v administraci verzi PHP ze seznamu obrazů a adresář, z kterého chceš obsluhovat a o zbytek se nemusíš zajímat. Vše bude fungovat stejně jako dřív.
Dobře, mám naklikáno, kam nahraju obsah?
- V administraci je záložka Přístup. Tam jsou přihlašovací údaje, přes které se dostaneš na server. V současnosti umožňujeme použití přes komunikační rozhraní SSH. Až se připojíš na server, tak tam uvidíš adresář public_html.
- Další možnost je vytvořit adresář public_domains a do něj nějaký podadresář.
- V administraci pak dostaneš možnost vidět tyto podadresáře a vybrat si jeden z nich. Pak si můžeš nahrát soubory do něj.
V administraci nevidím adresář, do kterého jsem nahrál obsah.
- Viz předchozí bod.
- Z důvodu kompatibility s předchozím systémem, je možné jen public_html a podadresáře public_domains.
Nodí/pythoní kontejner se nechce spustit.
- To je výchozí chování. Mají totiž entrypoint u tebe v adresáři který jim vybíráš.
- Vytvoř soubor .start a přidej mu práva ke spuštění chmod +x .start
- Obsahem souboru je skript, který spustí požadovanou aplikaci. Proxy server u těchto ne-php aplikací očekává že běží na portu 3000.
- Příklady .start skriptů
- NodeJS#!/bin/sh
npm install
PORT=3000 npm start - Python#!/bin/sh
pip install -r requirements.txt
python myapp.py 3000 - Go#!/bin/sh
go mod tidy
go mod download
PORT=3000 go run . - V administračním rozhraní je možné kontejnery restartovat tlačítkem a sledovat změny pomocí logů(). Popř. lze vejít webovou konzolí() přímo do kontejneru.
- Stav kontejneru je vidět z indikátoru. Možné stavy jsou:
- online
- offline
- neznámý
Můžu něco přiinstalovat do kontejneru?
- Jasná věc. V připravených kontejnerech je nainstalované sudo. Podle systému, na kterém jsou postavené, je možné použít balíkovací systém.
- sudo apk --update --no-cache add supr-dupr-program #alpine
sudo apt-get update && sudo apt-get install -y supr-dupr-knihovna && sudo rm -rf /var/lib/apt/lists/* #debian
Jak se z kontejneru připojím k databázi?
- Tvoje aplikace běží v kontejneru, ale databáze běží přímo na serveru. Kontejner a jeho host sdílejí soubor se socketem, takže by mělo stačit zadat localhost jako adresu, například v PHP. Pokud program nepoužívá k připojení socket, je třeba zadat adresu serveru host.docker.internal.
Jak to funguje?
- Administrace běží přímo na serveru v binárce, při změně konfigurace vytvoří docker-compose a konfiguraci proxy serveru a ty "otočí". S administrační aplikací komunikujete skrz proxy, její rozhraní není dostupné přímo. Nicméně celý "ansámbl" bude fungovat i bez administrace, protože kontejnery stále běží.
- Všechny kontejnery jsou upravené tak, aby běžely pod vaším uživatelským profilem. Díky tomu můžete přistupovat k souborům v připojeném adresáři. Jak z kontejneru tak z hostovského stroje.
Chci jiný docker obraz, který není v seznamu.
- V případě zájmu bude v budoucnu možnost použít jakýkoli obraz z docker hubu. Rozhraní se bude muset trochu rozšířit.
- Technicky to není problém, jenom je to složitější odladit.
- Uvidíme jak se to bude vyvíjet s těmi několika co jsem připravili.
Chci otevřít port do kontejneru z internetu.
- Omlouváme se, ale zatím to není možné. Ještě nemáme promyšleno, jak jednotlivé porty bookovat. Zatím si musíme vystačit s http a dns.
Nevím si s něčím rady, chci něco přidat atd...
- Kontaktuj helpdesk a oni kontaktují autora. Autor pak kontaktuje tebe.