
## Infrastructure docker pour le développement d'applications Laravel

Les services peuvent être directement gérés depuis des commandes docker compose. Ou via le cli `dc.sh` à la racine du projet.


```bash
./dc.sh <command> {env}
```

!! Pour le moment seul l'espace l'envirronement de développement est supporté. ENV : **dev**
!! L'intégration du process de build vite n'est pas encore intégré dans les process de build / install de l'app.


### Configuration

Les variable d'environnement sont définies dans *docker/env/env.{env}*

### Commandes de base

```bash

# premiere installation
./dc.sh clean_install {env}

# installation : composer install + migration
./dc.sh update_app {env}

# démarrage des services
./dc.sh start {env} 

# arrêt des services
./dc.sh stop {env} 
```

### Application et Services

```bash

## Gestion des queues laravel
## Les queues sont configurées dans dc.sh et sous forme de service dans les fichiers docker
./dc.sh start_queues {env} 
./dc.sh stop_queues {env} 

## Migration db
./dc.sh db_migrate {env} 
./dc.sh db_rollback {env}

## CLI laravel / composer
./dc.sh artisan {env} {command} # eg ./dc.sh artisan dev route:list
./dc.sh composer {env} {command} # eg ./dc.sh composer dev require laravel/ui
```


### Utilitaires DB

Utilitaires reposant sur mysql-client permettant la gestion de la base de données.
Les accès db sont préconfigurés en fonction des variables d'environnement.

```bash

# seed la db sur base dans un fichier sql présent dans docker/sql/seeds
./dc.sh db_seed {env} {filename}

# dump et import de la db présente dans volumes/db/dumps
./dc.sh db_dump {env} {filename}
./dc.sh db_import {env} {filename}

# accès au cli mysql equivalent direct de la commande mysql
./dc.sh db_cli {env} {command}
```