Aggiornamento del sito Web da Git (su SSH)


1

Ho uno script che eseguo su SSH, che aggiorna il mio sito Web da un repository Git.

cd website-git
git checkout master
git pull

# Update protected directory
rsync -v -a --delete --exclude=db --exclude=vendor ./protected/ /home/protected

# Update public directory
rsync -v -a --delete --exclude=tmp --exclude=data ./public/ /home/public

Funziona bene, ma il repository git ha 150 MB e io pago per lo spazio utilizzato, quindi questa non è un'ottima soluzione.

Oltre a cancellare la copia di lavoro (inizialmente ottenuta con git clone) dopo aver preso i file da essa, c'è un modo per risparmiare spazio con questa configurazione?


Ho pubblicato una risposta, ma questa configurazione è davvero il primo passo per reinventare la ruota di distribuzione del codice. Strumenti come Capistrano sono progettati per gestire compiti come questo con facilità. Sì, c'è una leggera curva di apprendimento se non l'hai mai usato prima, ma una volta capito, Capistrano è la soluzione migliore per attività di implementazione come questa.
Jake Gould,

Risposte:


1

Dovresti studiare come usare Capistrano per distribuire il tuo codice PHP invece di reinventare la ruota con uno script Bash come questo. Capistrano è fondamentalmente una serie di script Ruby che a loro volta eseguono una serie di comandi Bash per distribuire il codice da un repository di codice a un server remoto.

Anche se Capistrano viene utilizzato principalmente nel mondo dello sviluppo di Ruby, ma l'ho usato su tonnellate di progetti PHP e funziona benissimo. Questo è un bel tutorial su come adattare Capistrano per l'utilizzo in applicazioni PHP. Idem con questo .

Se lo spazio è un problema, una volta che hai impostato gli script Capistrano assicurati di impostare :keep_releasesun'impostazione su un valore basso come 2 o 3 come questo nello script Capistrano:

set :keep_releases, 3
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.