Comment utiliser les containers laravel - HE-Arc/slides-devweb Wiki

Prérequis

  1. Clés publiques des membres du projet ajoutées sur Github
  2. Container créé
  3. Mail d'information reçu contenant : votre port, URL, etc...
  4. Au minimum le projet par défaut de laravel fonctionnel

Infos du container

  • Image Docker : basée sur debian bullseye 11.5
  • Nginx : 1.18.0
  • PHP : 8.1
  • Node.js : 16.17
  • NPM : 8.15

Connexion ssh au container

Connectez-vous en ssh avec l'utilisateur laravel avec la clé que vous avez ajouté sur github et sur le port communiqué par email.

Avant de vous connecter, vérifiez que votre clé ssh est ajouté dans votre agent ssh local.

ssh -p<PORT> [email protected] 

Nginx

Nginx est utilisé comme serveur web sur le container. La configuration se trouve dans /etc/nginx/sites-enabled/default

Configuration par défaut :

server {
    listen 80;
    index index.php index.html;
    error_log  /var/log/nginx/error.log;
    access_log /var/log/nginx/access.log;
    root /var/www/public;
    location ~ \.php$ {
        try_files $uri =404;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass localhost:9000;
        fastcgi_index index.php;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param PATH_INFO $fastcgi_path_info;
    }
    location / {
        try_files $uri $uri/ /index.php?$query_string;
        gzip_static on;
    }
}

La configuration par défaut pointe vers /var/www.

Modifier (sudo) ce fichier pour faire pointer la configuration vers le dossier public de votre projet, par exemple /home/laravel/project/MY_PROJECT/public.

Si vous souhaitez ajouter un frontend séparé. Vous pouvez modifier ce fichier en conséquence en ajoutant par exemple :

location /app {
    root <WHEREMYFRONTENDIS>;
    index index.html index.php;
}

Si vous changez la configuration nginx, vous devrez redémarrer nginx avec sudo service nginx restart

Dossiers sauvegardés

Les fichiers placés dans /home/laravel/project seront sauvegardés en cas de suppression du container. Si vous faites des modifications sur la configuration nginx veillez à garder l'ancienne et la nouvelle version dans ce dossier.

Il est également recommandé de placer votre projet dans ce dossier pour le maintenir sauvegardé.

Connexion à la base de données

Dans le dossier /root/config-mount et /root/secret-mount vous trouverez vos identifiants de connexion à la base de données. Notamment mysql-host, mysql-database, mysql-username, mysql-password et mysql-port. Ceux-ci sont uniquement accessibles en root (sudo su).

Vous devrez utiliser ces données dans votre .env pour que laravel puisse se connecter à la base de données

Accès à l'application

L'url de votre application est la suivante : https://<PROJECT>.k8s.ing.he-arc.ch

⚠️ **GitHub.com Fallback** ⚠️