Per molto tempo non ho davvero capito cos’era pups e, onestamente, sono ancora un po’ confuso.
![]()
Capisco che le immagini Docker di Discourse debbano essere configurate. Invece di farlo tramite script bash, questa configurazione avviene tramite file yml (che generano script bash) reperibili qui: https://github.com/discourse/discourse_docker/tree/master/samples
Il lancio dei container Docker e la configurazione tramite pups sono strettamente intrecciati nello script di avvio qui:
La riga a cui ho fatto riferimento è di particolare interesse per me. Sembra far eseguire pups all’interno del container Docker. Ho provato a eseguire un file test.yml tramite pups e, ovviamente, non è stato eseguito in un container Docker. Ha semplicemente prodotto uno script bash (comandi bash?) che è stato eseguito immediatamente.
La mia domanda è: come faccio a far eseguire pups nel container Docker di sviluppo? Questa riga a cui ho fatto riferimento è molto lunga e alcune parti sembrano non necessarie per il mio caso d’uso. Forse qualcuno può fornire un esempio semplice su come combinare l’output di pups con un container Docker.
In sostanza, voglio aggiungere un comando pups simile a quello presente nello script di avvio, alla fine dello script boot_dev (o eseguirlo come script separato dopo lo script boot_dev).
Informazioni di background:
Motivazione di questa operazione → Voglio aggiungere un processo in esecuzione continua a runit. @merefield mi ha indicato il suo plugin Frotz come riferimento su come procedere:
La domanda è: come posso farlo localmente per testare l’input di pups? Come ho capito, l’istanza Docker di sviluppo non viene configurata tramite un file yml e pups. L’input di pups del plugin Frotz riguarda il file yml del server durante l’installazione del plugin, quindi fondamentalmente sono confuso su come farlo localmente.
Ok, grazie mille ![]()
EDIT:
Ok, ho trovato questo tipo di righe:
Quindi significa che pups deve semplicemente essere eseguito nel container. Non so perché pensassi che servisse solo a generare comandi. Ho visto solo questa frase nel file README:
pups è una piccola libreria che ti permette di automatizzare il processo di creazione di immagini Unix.
Non mi ha avuto molto senso, quindi naturalmente il mio subconscio ha preso il sopravvento.
L’argomento
--gen-docker-run-argsviene utilizzato per far sì che gli output di pups siano nel formatodocker run <output argomenti>.
In qualche modo questo mi ha portato a concepire pups come qualcosa che trasforma i file yml in output di comandi bash. Come un compilatore da yml a bash. In realtà è più simile a un interprete yml. Non solo crea i comandi, ma li esegue immediatamente.