Docker exécutant Nginx, PHP-FPM, Composer, MySQL et PHPMyAdmin.
Conditions préalables à l'installation
Avant d'installer le projet, assurez-vous que les conditions préalables suivantes sont remplies.
Cloner le projet
Nous téléchargerons le code depuis son référentiel sur GitHub.
Exécutez l'application
À ce stade, nous aurons tous les éléments du projet en place.
Utiliser les commandes Docker
Lors de l'exécution, vous pouvez utiliser les commandes docker pour effectuer des opérations récurrentes.
Application d'essai
Pour exécuter les commandes docker sans utiliser sudo vous devez ajouter le groupe docker à your-user :
sudo usermod -aG docker your-user
Pour l'instant, ce projet a été principalement créé pour Unix (Linux/MacOS)
. Peut-être que cela pourrait fonctionner sous Windows.
Tous les éléments requis doivent être disponibles pour votre distribution. Les plus importants sont :
Vérifiez si docker-compose
est déjà installé en entrant la commande suivante :
which docker-compose
Vérifiez la compatibilité Docker Compose :
Sur Ubuntu et Debian, ceux-ci sont disponibles dans le méta-paquet build-essential. Sur d'autres distributions, vous devrez peut-être installer le compilateur GNU C++ séparément.
sudo apt install build-essential
Vous devez être prudent lorsque vous installez des serveurs Web tiers tels que MySQL ou Nginx.
Ce projet utilise les ports suivants :
Serveur | Port |
---|---|
MySQL | 8989 |
PHPMonAdmin | 8080 |
Nginx | 8000 |
Pour installer Git, téléchargez-le et installez-le en suivant les instructions :
git clone https://github.com/sahedbs23/oscar-car-rental.git
Allez dans le répertoire du projet :
cd oscar-car-rental
.
├── Makefile
├── README.md
├── data
│ └── db
│ ├── dumps
│ └── mysql
├── doc
├── docker-compose.yml
├── etc
│ ├── nginx
│ │ ├── default.conf
│ │ └── default.template.conf
│ ├── php
│ │ └── php.ini
│ └── ssl
└── web
├── app
│ ├── composer.json.dist
│ ├── phpunit.xml.dist
│ ├── src
│ │ └── App.php
│ └── test
│ └── bootstrap.php
└── public
└── index.php
Démarrez l'application :
docker-compose up -d
Veuillez patienter, cela peut prendre plusieurs minutes...
docker-compose logs -f # Follow log output
Ouvrez votre navigateur préféré :
Arrêter et effacer les services
docker-compose down -v
docker run --rm -v $( pwd ) /web/app:/app composer require symfony/yaml
docker run --rm -v $( pwd ) /web/app:/app composer update
docker-compose exec -T php ./app/vendor/bin/phpunit --colors=always --configuration ./app
docker-compose exec -T php ./app/vendor/bin/phpmd ./app/src text cleancode,codesize,controversial,design,naming,unusedcode
docker-compose exec php php -m
docker exec -it mysql bash
et
mysql -u " $MYSQL_ROOT_USER " -p " $MYSQL_ROOT_PASSWORD "
mkdir -p data/db/dumps
source .env && docker exec $( docker-compose ps -q mysqldb ) mysqldump --all-databases -u " $MYSQL_ROOT_USER " -p " $MYSQL_ROOT_PASSWORD " > " data/db/dumps/db.sql "
source .env && docker exec -i $( docker-compose ps -q mysqldb ) mysql -u " $MYSQL_ROOT_USER " -p " $MYSQL_ROOT_PASSWORD " < " data/db/dumps/db.sql "
Notice:
Remplacez "YOUR_DB_NAME" par votre nom personnalisé.
source .env && docker exec $( docker-compose ps -q mysqldb ) mysqldump -u " $MYSQL_ROOT_USER " -p " $MYSQL_ROOT_PASSWORD " --databases YOUR_DB_NAME > " data/db/dumps/YOUR_DB_NAME_dump.sql "
source .env && docker exec -i $( docker-compose ps -q mysqldb ) mysql -u " $MYSQL_ROOT_USER " -p " $MYSQL_ROOT_PASSWORD " < " data/db/dumps/YOUR_DB_NAME_dump.sql "
Notice:
Importez la collection Postman depuis api-doc/postman_collection.json
Notice:
Importez l'environnement Postman depuis api-doc/postman_environment.json
Notice:
Un permis voiture est unique au niveau de la base de données. Vous pouvez importer le contenu du fichier une seule fois.