Allora, cari i miei programmatori, mettete che avete un software che deve esporre qualcosa su una porta, avete quattro modi sensati di farlo, ve li metto in ordine:
- Darmi una cazzo di immagine Docker, così che io possa scegliere quali porte esporre e come
- Darmi la possibilità di selezionare, in fase di installazione, le porte da usare
- Dare un errore bloccante così che io possa modificare le configurazioni
- Dare un errore non bloccante, non funzionare e darmi la possibilità di decidere come agire
La soluzione non è chiaramente fare come un programma di storage che ho installato che, semplicemente, con nonchalance, sbatte giù tutto quello che incontra pur di installarsi. Ovviamente sul Raspberry che fa sia da VPN server che da DNS.
E, ancor più ovviamente, riesce anche a incartare il DNS, mandando giù la rete. Di per sé non sarebbe un gran problema, se non fosse che per Android una rete senza DNS funziona male e quindi si connette e sconnette in continuazione.
Così devo accendere il PC, puntare i DNS ad altro luogo, riavviare il router per convincere tutti a funzionare coi nuovi DNS, tirare un paio di insulti ai dev del programma e, una volta constatato il danno, decidere di reinstallare il Raspberry con Ubuntu Server (come vi ho raccontato qui) dato che tanto dovevo fare il grande salto.
Risultato? Un paio d’ore perse, tutto ciò per un programma progettato essenzialmente per Raspberry, dove solitamente si installano le cose insieme, e senza uno straccio di dockerizzazione. Complimenti.