Déploiement
Téléchargement du code source
Primo-installation
Pour récupérer le code source la premier fois, utiliser git clone
:
git clone https://github.com/numerique-gouv/b3desk.git
git switch production
La commande git clone
n’est à utiliser qu’une seule fois lors d’une primo-installation.
Les mise à jour du code se feront avec d’autres commandes git.
Version stable
On peut utiliser git checkout
pour passer sur une branche ou tag stable :
# pour charger la dernière version stable
git switch production
git pull origin production
# pour charger un jalon spécifique
git fetch origin --tags
git checkout v1.0.0
Version de développement
Afin de valider des PR provenant de github, on peut charger du code instable pour pouvoir le tester ensuite. Dans les commandes suivantes remplacer <ID>
par le numéro de la PR :
# Récupération de la PR
git fetch origin pull/<ID>/head:pr<ID>
# Changement vers la branche de la PR
git switch pr<ID>
Puis, si de nouvelles modifications ont été ajoutées à la PR on peut mettre à jour le code avec :
git switch pr<ID>
git pull origin pr<ID>
Configuration
B3Desk
La configuration se fait dans un fichier nommé web.env
.
Lors d’une primo-installation, créer le fichier de configuration à partir de web.env.example
:
cp web.env.example web.env
Adapter les valeurs du fichiers de configuration à partir des indications du chapitre sur la Configuration de B3Desk.
Serveur web
Paramétrer le chargement des pages d’erreurs statique sur le serveur web frontal à partir des indications du chapitre sur la Configuration de Nginx.
Faire attention à ne pas mettre en cache les pages dynamiques de B3Desk.
Lancement des conteneurs
Enfin lorsque la bonne branche est chargée et que l’application est correctement configurée, on peut lancer les conteneurs avec les commandes suivantes :
# En production
docker compose -f docker-compose.yml -f docker-compose.prod.yml up
# En pré-production
docker compose -f docker-compose.yml -f docker-compose.preprod.yml up
Le fichier run_webserver.sh
est lancé par le Dockerfile
et migre la base de données automatiquement. Ces docker-compose de production et preproduction peuvent donc être utilisés pour une primo-installation, ou sur une instance existante.