Ciao a tutti.
Ho un programma che ha alcune dipendenze. Ho provato a portarlo al SERT, ma niente, le dipendenze non possono essere rimosse.
Pertanto, siccome devo permettere ad altri programmatori di lavorare sul progetto, stavo pensando di usare Docker.
Mi sto chiedendo, mettiamo che un programma abbia un dipendenza particolare da un pacchetto che al 100% non è installato di default su nessun sistema, posso creare un'immagine di Docker in cui questo pacchetto sia già incluso?
In caso di risposta negativa, ci sono altre strade, con Docker o senza?
Grazie in anticipo
[Docker] Programma con dipendenze
- vaeVictis
- Imperturbabile Insigne
- Messaggi: 4703
- Iscrizione: venerdì 27 luglio 2012, 17:58
- Desktop: Gnome
- Distribuzione: Ubuntu 20.04 64bit
[Docker] Programma con dipendenze
Pirates arrrrrrrrrrr awesome!!!
«I fear not the man who has practiced 10000 kicks once,
but I fear the man who has practiced one kick 10000 times.»
«I fear not the man who has practiced 10000 kicks once,
but I fear the man who has practiced one kick 10000 times.»
- DoctorStrange
- Imperturbabile Insigne
- Messaggi: 2872
- Iscrizione: mercoledì 14 ottobre 2015, 9:33
- Desktop: Gnome3
- Distribuzione: Ubuntu 22.04 LTS Jammy Jellyfish
- Sesso: Maschile
- Località: Roma, Italia
Re: [Docker] Programma con dipendenze
Allora, è abbastanza semplice. Se questo pacchetto, e tutte le dipendenze sono disponibili su repository ufficiale linux, allora l'unica cosa di cui hai bisogno è un dockerfile. Nel docker file tu scriverai dichiarativamente tutte le istruzioni bash da fare per avere tutte le dipendenze installate e configurate, ed anche le relative applicazioni. Avrai quindi un docker file del tipo: FROM Alpine-linux CMD sudo apt install dipendenza, applicazione... e cosi via, in maniera tale che, chiunque avrà il tuo dockerfile, potrà fare il build della medesima immagine docker a partire dall'immagine pubblicamente disponibile sul registry di docker (io ho scelto alpine linux, ma c'è anche busybox, ubuntu, fedora e molte altre. In questo modo se l'immagine di base dalla quale partire è disponibile sul registry di Docker, chiunque abbia il dockerfile potrà avere il tuo medesimo container.
Se invece tu hai un'ìimmagine troppo personalizzata di linux, della tua applicazione e di tutte le dipendenze, allora potrebbe convenirti fare un docker build dell'immagine di tutto l'ambiente di lavoro, ottenendo in questo modo un'immagine pronta all'uso. A questo punto questa immagine, dopo aver dato il docker build si troverà sul tuo registry personale. ti basterà dare accesso al tuo registry a tutti gli interessati e loro potranno scaricare in locale (con docker pull) la tua immagine.
In alternativa puoi scegliere un registry online, come Google Container Registry e pubblicare li la tua immagine e poi assegnerai l'accesso a questo registry a tutti gli interesati.
A questo punto, una volta che la tua applicazione, containerizzata è pronta, se vorrai potrai usare i pod di Kubernetes per trattarla come microservizi.
Se invece tu hai un'ìimmagine troppo personalizzata di linux, della tua applicazione e di tutte le dipendenze, allora potrebbe convenirti fare un docker build dell'immagine di tutto l'ambiente di lavoro, ottenendo in questo modo un'immagine pronta all'uso. A questo punto questa immagine, dopo aver dato il docker build si troverà sul tuo registry personale. ti basterà dare accesso al tuo registry a tutti gli interessati e loro potranno scaricare in locale (con docker pull) la tua immagine.
In alternativa puoi scegliere un registry online, come Google Container Registry e pubblicare li la tua immagine e poi assegnerai l'accesso a questo registry a tutti gli interesati.
A questo punto, una volta che la tua applicazione, containerizzata è pronta, se vorrai potrai usare i pod di Kubernetes per trattarla come microservizi.
- vaeVictis
- Imperturbabile Insigne
- Messaggi: 4703
- Iscrizione: venerdì 27 luglio 2012, 17:58
- Desktop: Gnome
- Distribuzione: Ubuntu 20.04 64bit
Re: [Docker] Programma con dipendenze
Chiarissimo, grazie mille.
Edit:
Se ho ben inteso il mio problema, perché la tua spiegazione è molto chiara, dovrei rientrare nel primo caso ma solo per alcune distribuzioni, previa installazione tramite dockerfile di alcune librerie di C++ e un paio di suoi binding per Python.
Credo che procederò in tal senso, almeno inizialmente, per poi seguire la seconda strada e creare un'immagine che abbia già tutto incluso.
Edit:
Se ho ben inteso il mio problema, perché la tua spiegazione è molto chiara, dovrei rientrare nel primo caso ma solo per alcune distribuzioni, previa installazione tramite dockerfile di alcune librerie di C++ e un paio di suoi binding per Python.
Credo che procederò in tal senso, almeno inizialmente, per poi seguire la seconda strada e creare un'immagine che abbia già tutto incluso.
Pirates arrrrrrrrrrr awesome!!!
«I fear not the man who has practiced 10000 kicks once,
but I fear the man who has practiced one kick 10000 times.»
«I fear not the man who has practiced 10000 kicks once,
but I fear the man who has practiced one kick 10000 times.»
Chi c’è in linea
Visualizzano questa sezione: 0 utenti iscritti e 11 ospiti