Egyszerű git deploy beállítása Digital Ocean dropleten
2019 Dec.

Ha már létrehoztuk a dropletet, elérjük ssh-val és feltelepítettük a git-et, composer-t, a következő lépésekell tudunk gyorsan egy Laravel projectet git segítségével DO szerverünkre deploy-olni.

 

Hozzunk létre a dropletben egy mappát a /var/www útvonalon, én most az egyszerűség kedvéért project-nek nevezem el

mkdir /var/www/project

Továbbá egy mappát a git repository-nak

mkdir /var/repo/project.git

Adjunk megfelelő tulajdonos jogot a mappának (a username a saját felhasználóneved a dropletben)

chown -R username:username project.git

Hozzunk létre egy üres repo-t

cd /var/repo/project.git
git init --bare

Nyissuk meg szerkesztésre a post-receive hook fájlt a következő adatokkal

cd /var/repo/project.git/hooks
vi post-receive

Illesszük be az alábbi sorokat

#!/bin/sh
git --work-tree=/var/www/project --git-dir=/var/repo/project.git checkout -f

cd /var/www/project
composer install
npm install
npm run production

A 2. sorban levő paranccsal megadjuk, hogy git deploy-kor hova másolja a módosult fájlokat a git.
Az 5. sorban a installáljuk a composer.lock fájl alapján a változásokat. 

Opcionálisan: 
A 6. sorban telepítjük a node csomagokat, a 7.-ben pedig lefordítjuk az asset fájlokat.

 

Mentsük a fájlt, és adjunk neki futtatási jogot

chmod +x post-receive

Lokálisan, projectünkben hozzuk létre a git repository-t és küldjük fel a fájlokat a droplet egyelőre üres repo-jába

git init
git remote add origin ssh://[email protected]:/var/repo/project.git
git add .
git commit -m '...'
git push origin master

Ahol az xxx.xxx.xxx.xxx dropletünk ip címe, ez az adat az adott dropletnél a DO adminban kinyerhető.

 

Több parancshoz sudo jogosultság kell, de ezt biztos tudjátok vagy jelezni is fogja a rendszer.