Pour le projet existant à utiliser, nous avons choisi un projet web.
Un front-end développé en React.js et un back-end API en Nest.js, Prisma ORM et GraphQL.
Le site web est une reproduction du blog Medium.com.
La page d'accueil :
Lien du dépôt : ICI
Les trois Dockerfile sont dans le dossier app/<nom>
(<nom>
= client, nginx ou server).
Le fichier docker-compose.yml est dans le dossier app
.
Commande d'exécution :
docker compose -f "app/docker-compose.yml" up -d --build
Résultat après avoir exécuté la commande :
Résultat sur localhost:5173
:
Vous avez juste besoin de lancer le script :
sh swarm/launch.sh
Ou faites ceci manuellement en suivant le README.md dans le dossier swarm.
- Récupérer l'access key et la secret key de votre compte AWS.
- Créer depuis l'interface AWS une key pair nommé "myKey" pour pouvoir se connecter à l'instance EC2. Puis télécharger le fichier
.pem
et le placer le à la racine du projet.
Une fois les informations de connexion récupérées, il n'y a plus qu'à :
Commandes à exécuter :
cd terraform
# Remplacer les valeurs avec votre access key et secret key
echo 'aws_access_key = "XXX"\naws_secret_key = "XXX"' > variables.tfvars
docker container run -it --rm -v $PWD:$PWD -w $PWD hashicorp/terraform init
docker build -t terraform .
docker run --rm -w /workspace terraform apply -auto-approve
Si toutes les informations demandées sont correctes, et une fois l'exécution réussi, la nouvelle instance a bien été créée sur AWS.
Vous devez placer votre clé myKey.pem
à la racine du projet si ça n'est pas déja fait, ainsi que changer l'adresse du server dans inventory.ini
, puis éxecuter ces commandes :
docker image build -t ansible:2.16 .
docker container run --rm ansible:2.16 ansible-playbook -i inventory.ini playbook.yml
Pour lancer et tester Jenkins en local:
docker run -p 8080:8080 -p 50000:50000 --restart=on-failure jenkins/jenkins:2.430-jdk21
Sinon lancer le docker compose du projet, Jenkins est incorporé dedans
Jenkins nous fournit un mot de passe initial pour la première étape.
Nous avons le choix entre une installation traditionnel et une installation suggérée. Nous choisirons la seconde option.
Une fois l'installation effectuée, nous créons l'utilisateur admin et sommes prêt à utiliser Jenkins.
On sélectionne New Item puis Freestyle project
Nous inscrivons l'url Git du projet et définissons la routine de mise à jour du Git
Jenkins est en marche, on peut lancer un premier Build manuel pour s'assurer du bon focntionnement du projet ou attendre la routine.