Ajout page Docker

This commit is contained in:
Lyanis Souidi 2024-06-04 16:27:01 +02:00
parent d651b3e2d7
commit 4cbc23f3b8
Signed by untrusted user: lyanis
GPG Key ID: 202150AA0DAB9FAC
3 changed files with 79 additions and 1 deletions

View File

@ -7,7 +7,7 @@ Commencez par lire
## Machine virtuelle ## Machine virtuelle
Il est confortable de développer dans une VM (un container Docker ferait Il est confortable de développer dans une VM (un [container Docker](Docker.md) ferait
aussi bien l'affaire). aussi bien l'affaire).
### Conseils pour la machine virtuelle ### Conseils pour la machine virtuelle

77
docs/Docker.md Normal file
View File

@ -0,0 +1,77 @@
# Docker
!!! example "Avetissement : expérimental"
L'usage de ScoDoc avec Docker est expérimental et n'est pas (encore) recommandé pour une utilisation en production.
## Prérequis
Assurez-vous d'avoir les éléments suivants installés sur votre machine :
- Docker
- Docker Compose
## Installation
### Télécharger le fichier [`docker-compose.yml`](https://git.scodoc.org/ScoDoc/ScoDoc/src/branch/master/docker-compose.yml)
```bash
curl -O https://git.scodoc.org/ScoDoc/ScoDoc/raw/branch/master/docker-compose.yml
```
!!! info
[WatchTower](https://containrrr.dev/watchtower/) (inclus dans le [`docker-compose.yml`](https://git.scodoc.org/ScoDoc/ScoDoc/src/branch/master/docker-compose.yml#L51-L57)) est un outil qui permet de mettre à jour automatiquement les conteneurs Docker. ScoDoc est mis à jour très régulièrement, il est donc recommandé d'utiliser WatchTower. Retirez le seulement si vous prévoyez d'effectuer les mises à jour manuellement et régulièrement.
### Modifier la configuration
Editez les variables d'environnement dans le fichier [`docker-compose.yml`](https://git.scodoc.org/ScoDoc/ScoDoc/src/branch/master/docker-compose.yml) pour personnaliser la configuration de ScoDoc :
- Container `scodoc` :
- `SCODOC_DATABASE_URI` : URI de connexion postgresql
- `CACHE_REDIS_HOST` : nom d'hôte du serveur Redis/Valkey
- `SCODOC_ADMIN_MAIL` : adresse email de l'administrateur
- `SCODOC_ADMIN_PASSWORD` : mot de passe de l'administrateur
- `SCODOC_MAIL_FROM` : adresse de l'expéditeur des emails envoyés par l'instance ScoDoc
- `MAIL_SERVER` : nom d'hote du serveur SMTP
- `MAIL_PORT` : port du serveur SMTP
- `MAIL_USE_TLS` : booléen pour activer le SMTPS
- `MAIL_USERNAME` : nom d'utilisateur pour l'authentification SMTP
- `MAIL_PASSWORD` : mot de passe pour l'authentification SMTP
- Container `postgres` :
- `POSTGRES_USER` : nom d'utilisateur de la base de données (à utiliser dans l'URI `SCODOC_DATABASE_URI`)
- `POSTGRES_PASSWORD` : mot de passe de la base de données (à utiliser dans l'URI `SCODOC_DATABASE_URI`)
!!! warning "Avertissement : sécurité"
Ne définisez pas la variable d'environnement `POSTGRES_DB` sur le container `postgres`, le container `scodoc` créera automatiquement la base en utilisant le nom fournit dans l'URI `SCODOC_DATABASE_URI`.
## Démarrage
Lancez cette commande pour démarrer ScoDoc :
```bash
docker compose up -d
```
Si vous n'avez pas modifié la configuration réseau, ScoDoc sera accessible à l'adresse [http://localhost:8000](http://localhost:8000).
!!! danger "Avertissement"
Pour des raisons de sécurité, ScoDoc ne doit pas être accessible en http par les utilisateurs, un reverse proxy (par exemple nginx) doit être mis en place pour forcer l'usage du https.
L'accès en http par les utilisateurs expose les mots de passe en clair sur le réseau.
## Build manuel
Une image [`scodoc/scodoc`](https://hub.docker.com/r/scodoc/scodoc) est publiée sur Docker Hub mais il est possible de build l'image localement en suivant ces étapes :
1. Clonez le dépôt ScoDoc :
```bash
git clone https://git.scodoc.org/ScoDoc/ScoDoc.git
cd ScoDoc
git checkout 9.6.970 # version de ScoDoc à build
```
2. Lancer le build de l'image Docker de ScoDoc (les `--build-arg` sont utilisés pour les [labels OCI](https://specs.opencontainers.org/image-spec/annotations/) et sont donc optionnels si l'image n'a pas vocation à être publiée) :
```bash
SCOVERSION=$(grep SCOVERSION sco_version.py | awk '{ print substr($3, 2, length($3)-2) }')
docker build --tag scodoc/scodoc:$SCOVERSION \
--build-arg="SCODOC_VERSION=$SCOVERSION" \
--build-arg="SCODOC_COMMIT=$(git rev-parse HEAD)" \
--build-arg="IMAGE_DATE=$(date -u +\"%Y-%m-%dT%H:%M:%SZ\")" \
.
```

View File

@ -67,6 +67,7 @@ nav:
- "Introduction": DevInternals.md - "Introduction": DevInternals.md
- "Utiliser Git": DevGit.md - "Utiliser Git": DevGit.md
- "Config serveur dev.": ConseilServeurDev.md - "Config serveur dev.": ConseilServeurDev.md
- "Docker": Docker.md
- "Tests unitaires": TestsScoDoc.md - "Tests unitaires": TestsScoDoc.md
- "Contacts": Contact.md - "Contacts": Contact.md