[risolto][ubuntu 22] docker vps e deploy symfony 5

Linguaggi di programmazione: php, perl, python, C, bash e tutti gli altri.
giuseppe500
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 470
Iscrizione: martedì 22 maggio 2012, 14:04
Distribuzione: 22.04
Sesso: Maschile

[risolto][ubuntu 22] docker vps e deploy symfony 5

Messaggio da giuseppe500 »

ciao.
Devo capire alcune cose su doker e il deploy.
ho un piccolo cloud su un hosting provider con ssh.
1)come si procede ad effettuare il deploy sul cloud dal mio pc locale?
Ho creato tutti i container con docker-compose e ho creato le immagini con docker-compose up tratto da un esempio su un repository github,
questo https://github.com/eko/docker-symfony.
ho due cartelle con symfony 5 una in /var/www e una sotto il clone del repo.
perchè due symfony?
su quale lavoro? , immagino che la cartella del repo sia da trasferire sulla cloud.
ma... come faccio il deploy ? con git? e poi?
insomma alcune cose non mi sono chiare chiedo gentilmente a voi.
ciao.
Ultima modifica di giuseppe500 il martedì 21 giugno 2022, 10:51, modificato 1 volta in totale.
giuseppe500
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 470
Iscrizione: martedì 22 maggio 2012, 14:04
Distribuzione: 22.04
Sesso: Maschile

Re: [ubuntu 22] docker vps e deploy symfony 5

Messaggio da giuseppe500 »

Ciao.
Ho visto che tutto cio che voglio fare è gestito da molte ditte di hasting differentemente(neanche tanto poi) ad es https://platform.sh/.
mi chiedevo se si puo creare un deploy delle applicazioni docker a "mano" su qualsiasi server cloud.
la risposta probabilmente se ci sono hosting specifici per fare questo è no.
cmq chiedo lo stesso, Alla fine cio che mi serve è la publicazione e questo penso si possa fare(chiedo)... alla fine anche se si perde molto del concetto di publicazione di platform.sh ad es.
Avatar utente
DoctorStrange
Imperturbabile Insigne
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: [ubuntu 22] docker vps e deploy symfony 5

Messaggio da DoctorStrange »

Il tuo primo messaggio non mi è molto chiaro, proverò a capirlo meglio. Per quanto riguarda la tua seconda domanda, il deploy di docker è in tutto e per tutto regolato dal dockerfile dello specifico container. Questo vuol dire che tu puoi avere tanti container diversi, che differiscano anche di un solo aspetto, se hai i rispettivi dockerfile che ne descrivano le configurazioni.

Il dockerfile prende un template di base, ovvero un'immagine già disponibile su un registry e, a questa, tramite appunto il dockerfile, applica tutte le modifiche che vuoi, ottenendo dunque un secondo container, diverso dall'immagine disponibile sul registry in funzione delle tue modifiche.

Qualunque cloud che abbia un docker engine, può avviare i tuoi container docker.

Se vuoi avere un architettura a microservizi, come vanno di moda ultimamente, dovrai avere poi un orchestratore di microservizi. Il piu famoso è kubernetes, ma ce ne sono diversi, incluso anche podman, disponibile anche per Ubuntu.

In maniera simile al dockerfile, con kubernetes, avrai un file di deployment chiamato "deployment.yaml", qui definisci come è compostao ogni singolo pod del cluster kubernetes. Nel file yaml, definirai anche quali (e quante) immagini docker inserire in ogni pod, ed anche altre caratteristiche dello stesso deployments kubernetes come, ad esempio, il numero di repliche che desideri del medismo pod, eventuali volumi annessi al cluster, porte di comunicazione esposte, piani per il rilancio automatico dei pod in caso di collasso, ed altre cose.

in questo modo, si può dire che, usando dockerfiles e file kubernetes "deployment.yaml", tu puoi (in teoria) migrare la tua intera infrastruttura a microservizi verso un altro gestore.

I files di deployments, essendo semplici files di testo si prestano facilmente ad essere versionati, e quindi puoi usare GIT ed anche sistemi CI/CD.

Se cerchi infine cluster kubernetes in cloud, ne trovi molti. Ci sono Google Cloud Platform, Amazon AWS, Microsoft AZURE, ed altri, ma consulta bene i costi. i cluster non sono molto economici.
giuseppe500
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 470
Iscrizione: martedì 22 maggio 2012, 14:04
Distribuzione: 22.04
Sesso: Maschile

Re: [ubuntu 22] docker vps e deploy symfony 5

Messaggio da giuseppe500 »

mi hai chiarito un po.
e sul deployment di un applicazione?
ad es vorrei fare il deployment ogni volta che faccio il commit di files php in un applicazioe symfony (un framework php) in un sistema doker con php nginx e elasticsearch.All interno di un container php_symfony configurato in docker.in pratica ho un container con l'applicazione php e vari container con il resto(nginx,php fpm,elasticsearch e mysql)
posso usare git? come va configurato per rasferire i cambiamenti ad ogni commit? o semplicemente con un comando?
dovrebbe fare come da server git in pratica.
grazie ancora. ciao
Avatar utente
DoctorStrange
Imperturbabile Insigne
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: [ubuntu 22] docker vps e deploy symfony 5

Messaggio da DoctorStrange »

Dunque, la tua immagine docker, esisterà nella tua infrastruttura indipendente e containerizzata, e cosi la devi vedere. Non conosco il tuo framework e non conosco bene le sue specifiche politiche di deploy ma ad esempio, in java, si usa l'application server. Questo funziona in questo modo: ogni volta che io voglio pubblicare un nuovo pacchetto jar, o war, che è il pacchetto compilato dell'applicazione, allora lo devo copiare manualmente in una specifica directory all'interno dell'application server. La directory di deploy, appunto. Questo fa in modo che l'application server intercetti il nuovo pacchetto, rimuova il precedente e pubblichi quello nuovo.
Se l'application server è containerizzato sotto Docker, credo funzioni in questo modo. All'interno di ogni dockerfile, ci sono alcuni parametri che è sempre obbligatorio specificare, ad esempio la clausola FROM, che specifica l'immagine template di origine, ed anche la WORKDIR. Questa indica quale sia il percorso sull'host dove viene impostato di default il percorso di lavoro. Puoi configurare il tuo dockerfile in maniera tale che, ogni volta che avvii l'immagine docker del tuo application server o, comunque, l'autorità che in symphony si occupa di fare il deploy, non lo conosco, in java sarebbe l'applicatio server, appunto, prenderà il tuo pacchetto dalla WORKDIR e la copierà in automatico nella directory di deploy. In questo modo, ogni volta che avvierai l'immagine docker, questa prenderà l'immagine dalla workdir, verrà copiata nella directory di deploy interna dell'immagine docker, ed il tuo container si avvierà e pubblicherò la tua applicazione.
Con git puoi versionare il tuo codice, inclusi dockerfile e deployment.yaml. Al momento non ti so dire se GIT stesso possa pubblicare l'applicazione. Questo di solito è un compito di CI/CD. io qualche tempo fa usavo, per esempio Jenkins. Con questo, ogni volta che il commit completa, Jenkins prende il pacchetto war generato, e lo copia nella directory di deploy, in questo modo con il "Continuous integration / Continuous deployment", puoi automatizzare anche la parte di pubblicazione della nuova applicazione.
Se invece parliamo di cloud, io so usare la GCP. qui puoi usare "Cloud Build" e "Cloud Trigger". Questi ti permettono, oltre a fare quello che fa Jenkins, anche di fare un vero e proprio build di una nuova immagine docker, ad ogni nuovo commit.
giuseppe500
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 470
Iscrizione: martedì 22 maggio 2012, 14:04
Distribuzione: 22.04
Sesso: Maschile

Re: [ubuntu 22] docker vps e deploy symfony 5

Messaggio da giuseppe500 »

grazie, sei stato gentilissimo e molto preparato.
Scrivi risposta

Ritorna a “Programmazione”

Chi c’è in linea

Visualizzano questa sezione: UbuNuovo e 13 ospiti