Skip to content

Déploiement sur Windows

ylked edited this page Oct 23, 2023 · 1 revision

Prérequis

  • Docker Engine >20.10
  • Docker compose >2.17
  • Python >3.8
    • Python requests >2.31

Vérifier les installations

Docker engine

Pour vérifier que docker soit à la bonne version, entrer la commande suivante dans un terminal :

docker version

image

Tester le lancement d'un container

Pour être sûr que l'on peut lancer un container, exécuter la commande suivante :

docker run --rm hello-world

image

IMPORTANT (Hyper-V) : vérifier le mapping des volumes

Sur Windows, il n'est pas rare que les volumes montés avec docker ne fonctionnent pas correctement. Si docker fonctionne avec Hyper-V (au lieu de WSL2), il est nécessaire d'autoriser l'accès aux dossier utilisés. Dans Docker Desktop, aller dans Settings, Resources puis File Sharing, et ajouter le dossier historiska entier.

Ensuite, dans un terminal, se déplacer dans le dossier historiska et lancer la commande suivante

docker run --rm -it -v ./historiska-api-server:/files alpine sh

Un shell devrait s'ouvrir. Entrer la commande la commande suivante et vérifier que le dossier ne soit pas vide :

cd /files && ls

image

Si tout est OK, quitter le container à l'aide de la commande exit.

Docker compose

Vérifier la version avec la commande suivante :

docker compose version

Python

Vérifier la version avec la commande suivante :

python3 --version

Python requests

Vérifier la présence du module avec la commande suivante :

python3 -c "import requests"

Vérifier qu'il n'y a pas d'erreur.

Pour installer requests avec pip :

python3 -m pip install requests

Déploiement local

Ajouter un fichier .env dans /historiska/historiska-api-server/ avec le contenu suivant :

APP_NAME=Historiska
APP_ENV=local
APP_KEY=
APP_DEBUG=true
APP_URL=http://localhost

LOG_CHANNEL=stack
LOG_DEPRECATIONS_CHANNEL=null
LOG_LEVEL=debug

DB_CONNECTION=mysql
DB_HOST=db
DB_PORT=3306
DB_DATABASE=historiska
DB_USERNAME=root
DB_PASSWORD=admin

MAIL_MAILER=smtp
MAIL_HOST=mail.infomaniak.com
MAIL_PORT=465
[email protected]
MAIL_PASSWORD=Q@u9rnHiq297WoGtYCV-rD
MAIL_FROM_ADDRESS="[email protected]"
MAIL_FROM_NAME="Historiska"

MAIL_LINK_URL=http://localhost:3000

Lancer la commande suivante depuis le répertoire contenant le projet git :

docker compose up -d

Attendre le téléchargement des images.

image

Lancer la commande suivante pour vérifier que tous les containers sont en fonctionnement :

docker ps

Vérifier qu'il y ait bien (au moins) les 4 containers qui soient affichés !

image

Si tout va bien, lancer la commande suivante pour générer une clé d'application :

docker exec historiska-api-server sh -c "php artisan key:generate"

Le message suivante doit s'afficher :

image

Lancer la commande suivante pour créer la base de données :

docker exec historiska-api-server sh -c "php artisan migrate --force"

Le message suivant doit s'afficher :

image

Lancer la commande suivante pour créer un compte d'administrateur :

docker exec historiska-database sh -c "mariadb -u root -padmin -h db -D historiska -e \"insert into user (is_admin, username, email, password, is_activated, token, token_issued_at) values (1, 'admin', 'null', '0', 1, '0', now()); \""

Vérifier qu'il n'y ait pas d'erreurs.

Lancer le script python, **en se déplaçant au préalable dans le dossier /historiska/data **:

cd data
python3 generate.py

Vérifier que les requêtes sont acceptées par le serveur :

Pour vérifier que tout s'est bien passé, se rendre sur Adminer (http://localhost:8080) et se connecter à l'aide des identifiants suivants :

Champ Valeur
System MySQL
Server db
Username root
Password admin
Database historiska

Appuyer sur select card, comme montré sur la figure suivante (Bien cliquer sur select, pas sur card!) :

image

La liste des cartes du jeu devrait s'afficher :

image

Ne pas oublier de supprimer le compte admin précédemment créé :

docker exec historiska-database sh -c "mariadb -u root -padmin -h db -D historiska -e \"delete from user where username='admin'\""

L'application peut maintenant être utilisée via http://localhost:3000