DocScoDoc/docs/Docker.md
2024-06-04 16:27:01 +02:00

3.8 KiB

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

curl -O https://git.scodoc.org/ScoDoc/ScoDoc/raw/branch/master/docker-compose.yml

!!! info WatchTower (inclus dans le docker-compose.yml) 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 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 :

docker compose up -d

Si vous n'avez pas modifié la configuration réseau, ScoDoc sera accessible à l'adresse 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 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 :

    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 et sont donc optionnels si l'image n'a pas vocation à être publiée) :

    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\")" \
                 .