Nuovo progetto
Prima di iniziare assicurarsi che il repository su Gitlab sia stato creato e di avere accesso a quel repository.
Iniziamo con il clonare un progetto laravel base
curl -s "https://laravel.build/my-project?with=mysql,redis,mailpit" | bash
Spostiamoci nella cartella appena creata
cd my-project
dove al posto di my-project
andiamo a mettere il nome della cartella locale che verrà creata con all'interno il framework Laravel.
A questo punto andiamo a modificare il file .env
andando ad aggiungere la sezione per le porte di docker/sail
APP_PORT=8088
FORWARD_DB_PORT=33066
FORWARD_REDIS_PORT=63799
FORWARD_MAILPIT_PORT=1025
FORWARD_MAILPIT_DASHBOARD_PORT=8025
SANCTUM_STATEFUL_DOMAINS=""
ASSET_URL=/.
Modificare ora il file docker-compose.yml
andando a rimuovere la seguente linea
'${VITE_PORT:-5173}:${VITE_PORT:-5173}'
Creiamo un file .env.example
cp .env .env.example
Creiamo un file .env.testing
utile alla pipeline CI/CD
cp .env .env.testing
Ora possiamo avviare sail in locale
sail up --build -d
Andiamo a pubblicare le configurazioni docker di sail, questo sarà molto utile per permettere a chi clonerà questo progetto di poter lanciare il primo composer update
senza avere php 8 sulla propria macchina
sail artisan sail:publish
Prima di poter lanciare un composer update
, dovremo aggiungere al progetto il file auth.json
che ci permette di accedere ai repository dei package Weconstudio. Questo file lo possiamo copiare da un altro progetto oppure lanciando il seguente comando ne verrà generato uno stub
cat <<EOT > auth.json
{
"http-basic": {
"git.weconstudio.it": {
"username": "ncognome",
"password": "xxx"
}
}
}
EOT
Aggiungiamo quindi questo file al gile .gitignore così che non venga pushato
echo 'auth.json' >> .gitignore
Aggiungiamo al composer.json l'url per poter raggiungere i package weconstudio. Iniziamo dal framework-core
sail composer config repositories.weconstudio/framework-core git https://git.weconstudio.it/weconstudio/framework/core.git
Proseguiamo con framework-system-utilities
sail composer config repositories.weconstudio/framework-system-utilities git https://git.weconstudio.it/weconstudio/framework/system-utilities.git
Eseguiamo i seguenti comandi per aggiungere effettivamente il package framework-core
rm composer.lock
sail composer require "weconstudio/framework-core"=dev-l10
sail artisan weconstudio:core:install
Eseguiamo i seguenti comandi per aggiungere effettivamente il package framework-system-utilities
rm composer.lock
sail composer require "weconstudio/framework-system-utilities"=dev-main
sail artisan weconstudio:system-utilities:install
Ora è necessario riavviare sail
sail down && sail up --build -d
A questo punto siamo pronti per creare il database e creare le risorse base, lanciando i seguenti comandi
sail artisan migrate
sail artisan weconstudio:model:init users --no-model
sail artisan weconstudio:model:init devices --no-model
sail artisan weconstudio:model:init roles --no-model
sail artisan weconstudio:model:init role_user --no-model --pivot
Possiamo ora legare il progetto al repository Gitlab e ad eseguire il primo commit
git init && git remote add origin git@git.weconstudio.it:XXXX/api.git
git add . && git commit -m "Initial commit" && git push -u origin main