Vous êtes sur la page 1sur 3

- Créer le repo github

- Activer le gitignore et le readme


- Cloner le repository
- Créer le fichier requirements.txt
 Insérer Django=4.2
- Créer le dossier app
- Créer le fichier Dockerfile (On n’inclut pas les apk, mkdir, chmod..)
 FROM python :3.9.16-alpine3.17
 …
- Créer le fichier docker-compose.yml (sans la section command)
 Version : ‘3.9’
 …
- Créer le .dockerignore
- Lancer docker-compose build
- Lancer docker-compose run –rm app sh –c “django-admin startproject app .’’
- Configurer le settings.py en utilisant os.environ (ça permet d’éviter que les données
sensibles s’affichent dans github). On modifie pas encore les static et media
- Insérer dans le Dockerfile les apk
- Créer une app avec docker-compose run –rm app sh –c “django-admin startapp core’’
- Ajouter l’app parmi les INSTALLED_APPS dans settings.py
- On crée les modèles
- On ajoute les modèles à l’admin
- On insère un dossier management dans core puis on y crée un fichier __init__.py
- On insère un dossier commands dans management puis on y crée un fichier __init__.py
- On crée ensuite le fichier wait_for_db.py à l’intérieur de commands
- On ajoute la section command dans docker-compose.yml
- On peut tester l’avancement avec docker-compose-up
- On peut ajouter mkdir, chown et chmod dans le Dockerfile
- Ajouter /data au .gitignore
- On crée les STATIC / MEDIA (ROOT et URL)
- On ajoute les MEDIA dans le fichier urls.py
- On lance docker-compose run –rm app sh –c “python manage.py createsuperuser’’
- Lancer docker-compose up

Pour le déploiement de l’app

- On crée le dossier proxy (et tout son contenu)


- On crée le dossier scripts (et tout son contenu)
- Il faut se rassurer de convertir l’encodage des scripts run.sh de CRF à LF
- On crée le fichier docker-compose-deploy.yml
- On ajoute les scripts dans le Dockerfile principal
- On efface les fichiers déjà uploadés en local avec docker-compose –f docker-compose-
deploy.yml down -–volumes.
- On reconstruit le conteneur avec docker-compose –f docker-compose-deploy.yml build
- On relance le conteneur avec docker-compose –f docker-compose-deploy.yml up
- Sans stopper le conteneur on ouvre un autre terminal où on va créer le superuser
- On redéfinit le superuser avec docker-compose –f docker-compose-deploy.yml run -–rm
app sh -c “ python manage.py createsuperuser’’

Pour la mise en place du serveur AWS (utiliser bash)

- On crée l’instance aws (voir vidéo)


- On crée la paire de clés : cat ~/.ssh/id_rsa.pub (Il faut se rassurer d’avoir déjà installer le
client ssh dans les users du PC)
- On utilise l’adresse IPV4 généré pour se connecter au serveur

Exemple : ssh ec2-user@ec2-54-90-137-187.compute-1.amazonaws.com

- On installe git avec sudo yum install git –y


- On installe docker avec sudo yum install –y docker
- On lance docker avec sudo systemctl start docker
- On se connecte à docker avec sudo usermod -aG docker ec2-user
- On installe docker-compose(voir sur le site) avec sudo curl -SL
https://github.com/docker/compose/releases/download/v2.17.2/docker-compose-
linux-x86_64 -o /usr/local/bin/docker-compose (la commande ci n’est qu’un
exemple)
- On teste et on exécute docker-compose avec sudo chmod +x /usr/local/bin/docker-
compose
- On sort de l’instance avec exit et on se reconnecte pour que les modifications s’appliquent
- On crée les clés de déploiement pour github
 On va dans les settings du repo github puis dans la settings (deploy keys)
 On crée les clés en question avec ssh-keygen –t ed25519 –b 4096
La 1ere combinaison crée la connexion entre la machine et le serveur
La 2e connexion crée la connexion entre le serveur et github
 On valide la création et on peut entrer un phrase d’accès (optionnel)
 On tape ensuite cat ~/.ssh/id_ed25519.pub et on a la clé de connexion au serveur
 On peut coller la clé de connexion dans github et valider
 On clone ensuite le repo github avec le lien SSH
 On vérifie que le projet est bien cloné avec ls
 On se positionne sur le dossier cloné avec cd et on exécute vi .env
 On modifie le fichier en définissant les paramètres de connexions
 On exécute docker-compose –f docker-compose-deploy.yml up -d
 Dans le cas où docker-compose a des problèmes de permission on exécute : sudo ln -s
/usr/local/bin/docker-compose /usr/bin/docker-compose
 On lance docker-compose –f docker-compose-deploy.yml run –rm app sh –c ‘’python
manage.py createsuperuser’’
 Une fois le superuser créé l’application est terminée. De même toute autre exécution
python se fera par la syntaxe précédente.

Effectuer des modifications sur l’app déployée

 On lance docker-compose –f docker-compose-deploy.yml logs pour voir toutes les infos


sur les couches du conteneur et les évolutions
 Pour récupérer les modifications envoyées sur github on effectue git pull origin
 On peut effectuer docker-compose –f docker-compose-deploy.yml build nom_app pour
ajouter les modifications
 Ensuite docker-compose –f docker-compose-deploy.yml up –no-deps –d nom_app pour
vérifier si l’app est à jour.

Vous aimerez peut-être aussi