Images Docker

Billet

Depuis plusieurs années des images Docker de Dotclear étaient mises à disposition par l'utilisateur Darknao (Github, Docker) mais les bouleversements survenus cette année sur le code de Dotclear ont dû avoir raison de son travail car aucune image Docker n'existait au dessus de Dotclear 2.25.3

Docker logo La version 2.32 de Dotclear ayant apporté quelques corrections au processus d'installation, des images Dockers encore plus simplifiées ont pu voir le jour.

Présentation des images

Les images Docker présentées ici sont basées sur :

  • OS Alpine Linux,
  • Serveur web Nginx,
  • Processeur de langage PHP-FPM,
  • Gestion de cache PHP Opcache,
  • Dotclear version stable et unstable,
  • Préconfiguré en multiblog local

Cela permet une image Docker d'un serveur web multiblog Dotclear complet (hors base) de moins de 150Mo (32Mo compressé).
3 types d'images sont disponibles :

  • jcpd/docker-dotclear:2.32 sera l'image d'une version précise de Dotclear
  • jcpd/docker-dotclear:latest sera l'image de la dernière version stable de Dotclear
  • jcpd/docker-dotclear:dev sera l'image de la branche de développement (unstable) de Dotclear

Les images sont disponibles sur le Hub Docker. Et le code source est disponible sur le dépôt Github.

Structure

L'image contient le serveur web complet avec Dotclear, il ne reste qu'à lier au container une base de données. (voir plus bas le fichier docker-compose.yaml)
L'image propose une structure déportée de toute la partie utile qu'il est facilement possible de mettre dans un volume Docker ou un chemin spécifique de l'hôte. Ce qui rend la gestion/sauvegarde plus simple. La racine de cette structure est dans /var/www/dotclear, elle contient les dossier suivant :

  • app : contient les fichiers de l'application Dotclear
  • blogs : contient les répertoires public des blogs
  • cache : contient les fichiers de cache des templates
  • plugins : contient les plugins tiers
  • servers : contient les fichiers de configuration du serveur web pour les blogs
  • var : contient les fichiers Var de dotclear

A noter que pour l'instant par défaut les thèmes sont commun à tous les blogs et sont dans l'application.
Par défaut les URL des blogs utilisent l''ID de chaque blogs comme suffixe :

  • http://localhost/default/
  • http://localhost/secondblog/
  • ...

Un plugin se charge de créer le répertoire public et de corriger les chemins d'accès. Si vous souhaitez modifier ce fonctionnement, il faut désactiver le plugin DockerDotclear et configurer le serveur web en modifiant le fichier default.conf du répertoire servers.

Installation

Docker
Sous Windows et Mac la façon la plus simple d'avoir Docker est d'installer Docker Desktop. Un environnement complet qui permet de gérer des container et également de créer des images. Et sous Unix, certaines distributions proposent des paquetages et de nombreux tutoriels sont disponibles sur la toile pour installer Docker et Docker compose de divers manières.
Installation depuis le script officiel Docker :

curl -fsSL https://get.docker.com -o get-docker.sh && sudo sh get-docker.sh

Dotclear :
Pour avoir un serveur complet il faut un container de Dotclear et un autre container pour la base de données. Le plus simple et d'exécuter les deux en même temps. Pour cela Docker compose est l'outil parfait.
Dans un répertoire de votre machine abritant Docker, créer un fichier docker-compose.yaml et copier dedans le contenu suivant :

services:
  # MYSQL database service
  dc_db:
    image: mariadb:latest
    container_name: dotcleardb
    restart: unless-stopped
    command: --transaction-isolation=READ-COMMITTED --log-bin=binlog --binlog-format=ROW
    volumes:
      - dc_db:/var/lib/mysql
    environment:
      MYSQL_ROOT_PASSWORD: dotclear_root
      MYSQL_DATABASE: dotclear_db
      MYSQL_USER: dotclear_user
      MYSQL_PASSWORD: dotclear_pwd

  # Dotclear server service
  dc_app:
    image: jcpd/docker-dotclear:latest
    container_name: dotclearphp
    restart: unless-stopped
    volumes:
      - dc_app:/var/www/dotclear # docker volume
    ports:
      - 80:80
    depends_on:
      - dc_db # MYSQL database service
    environment:
      # These variables are only used for first install, see inc/config.php
      DC_DBDRIVER: mysqlimb4 # MYSQL full UTF-8
      DC_DBHOST: dc_db # MYSQL database service
      DC_DBNAME: dotclear_db # MYSQL_DATABASE
      DC_DBUSER: dotclear_user # MYSQL_USER 
      DC_DBPASSWORD: dotclear_pwd # MYSQL_PASSWORD 
      DC_DBPREFIX: dc_ # Database tables prefix
      DC_ADMINMAILFROM: contact@exemple.com # Dotclear mail from

volumes:
  dc_app: # Dotclear volume
  dc_db: # MYSQL volume

Ou télécharger le directement depuis le dépôt Github :

curl -o docker-compose.yaml https://raw.githubusercontent.com/JcDenis/docker-dotclear/refs/heads/master/docker-compose.yaml

Il est très fortement recommandé de modifier l'utilisateur (dotclear_user) et le mot de passe (dotclear_pwd) !
Puis depuis le répertoire abritant le fichier Yaml, exécuter la commande qui lancera le serveur web Dotclear :

docker-compose up -d

Dotclear sera disponible à l'adresse http://localhost
Lors du premier lancement le serveur mettra un moment avant d'être en ligne car il doit copier et préparer la version de Dotclear. Ensuite le processus d'installation vous demandera de créer un utilisateur et vous redirigera vers la page d'administration des blogs http://localhost/admin . Quant au premier blog par défaut il sera disponible à l'adresse http://localhost/default/ .

Voila pour une première présentation générale de l'image Docker de Dotclear. Amusez-vous bien !

Ajouter un commentaire

Les commentaires peuvent être formatés en utilisant une syntaxe wiki simplifiée.

La discussion continue ailleurs

URL de rétrolien : https://dotclear.watch/trackback/48