binárka / linux (pull_request) Successful in 10s
testy / pytest (3.11) (pull_request) Successful in 1s
testy / pytest (3.12) (pull_request) Successful in 1s
testy / pytest (3.13) (pull_request) Successful in 1s
testy / pytest (3.14) (pull_request) Successful in 0s
Aby se to dalo nechat běžet pořád, ne jen spouštět večer na notebooku. pve-kostky.sh se pouští na uzlu Proxmoxu, založí kontejner a předá řízení lxc-install.sh, který uvnitř stáhne vydanou binárku, ověří kontrolní součet a zapíše službu. Ty dva jsou oddělené schválně: instalátor o Proxmoxu nic neví, takže se dá pustit i v kontejneru, který sis založil sám. Podoba je odkoukaná od community-scripts.org, ale nic z jejich frameworku se nestahuje — jejich build.func si instalační skript hledá natvrdo ve vlastním repozitáři, takže mimo něj nefunguje. Docker se staví ze zdrojáků, ne z binárky: image pak jde sestavit pro obě architektury a nezávisí na tom, jestli release proběhl. Zamčené závislosti z minula dělají sestavení opakovatelné. Compose používá síť hostitele, a to je podstatné. V bridge režimu vidí kontejner uvnitř adresu 172.17.0.2, tabule ji poctivě nabídne a udělá na ni QR kód — jenže z telefonu je nedosažitelná. Ověřeno, ne odhadnuto; kdo bridge potřebuje, musí nastavit DICE_HOST. Aplikace sama nepotřebovala změnit nic. DICE_DB, DICE_PORT a DICE_HOST pokrývají obojí a v LXC má kontejner vlastní adresu v LAN, takže hledání adres i QR kód fungují beze změny.
46 lines
1.3 KiB
YAML
46 lines
1.3 KiB
YAML
# Počitadlo kostek v Dockeru.
|
|
#
|
|
# cd deploy && docker compose up -d
|
|
#
|
|
# Počítá se s domácí sítí. Appka nemá přihlašování, tohle ji nijak
|
|
# nezabezpečuje a do internetu nepatří.
|
|
|
|
services:
|
|
kostky:
|
|
build:
|
|
context: ..
|
|
dockerfile: deploy/Dockerfile
|
|
args:
|
|
VERSION: ${VERSION:-vlastní sestavení}
|
|
image: kostky:latest
|
|
container_name: kostky
|
|
restart: unless-stopped
|
|
|
|
# Python jako PID 1 nesklízí osiřelé procesy a hůř reaguje na signály.
|
|
init: true
|
|
|
|
# Síť hostitele schválně. V bridge režimu kontejner uvnitř vidí adresu
|
|
# jako 172.17.0.2, tabule ji poctivě nabídne a vygeneruje na ni QR kód —
|
|
# jenže z telefonu je nedosažitelná. Se sítí hostitele appka najde tu
|
|
# adresu, na kterou se telefon opravdu dovolá.
|
|
#
|
|
# Kdo bridge potřebuje, ať zakomentuje řádek níž, odkomentuje ports
|
|
# a nastaví DICE_HOST na adresu hostitele v LAN:
|
|
#
|
|
# ports:
|
|
# - "8000:8000"
|
|
# environment:
|
|
# DICE_HOST: 192.168.1.10
|
|
network_mode: host
|
|
|
|
environment:
|
|
DICE_PORT: 8000
|
|
DICE_DB: /data/dice.db
|
|
|
|
volumes:
|
|
- kostky-data:/data
|
|
|
|
volumes:
|
|
# Zálohu si stáhneš rovnou z appky přes /export, takže se sem nemusí lézt.
|
|
kostky-data:
|