Docker personnalisé
Ce tutoriel utilise l'outil Frappe Docker pour déployer Dokos sous Docker.
Pour bien comprendre Frappe Docker, veuillez vous référer à sa documentation.
Configuration avancée avec Docker
Frappe Docker
Frappe Docker est un projet communautaire permettant d'installer Frappe et ERPNext dans des conteneurs Docker.
Dodock étant basé sur le framework Frappe, il est possible d'utiliser ce projet en changeant quelques éléments afin de lancer Dodock et Dokos dans des conteneurs Docker.
Docker
Si Docker et Docker Compose ne sont pas installés sur votre serveur, vous pouvez utiliser la commande suivante ou vous reporter à la documentation de Docker.
# Install docker and docker-compose-plugin
curl -fsSL https://get.docker.com | bash
Création des images
Afin de pouvoir lancer un site Dokos dans un conteneur Docker, il faut commencer par construire les images qui seront utilisées.
Les modifications de configuration proposées ci-dessous permettent de générer des images incluant Dodock, Payments, Dokos et HRMS.
Vous pouvez modifier la configuration pour exclure HRMS ou Payments + Dokos.
Rappel : Payments est une application nécessaire au fonctionnement de Dokos. Vous ne pouvez pas l'exclure sans exclure Dokos.
La construction utilise les secrets de build de Docker. Il faut Docker avec BuildKit (actif par défaut dans les versions récentes) ou Podman avec Buildah.
- Étape 1 : clonez
https://github.com/frappe/frappe_docker.
git clone https://github.com/frappe/frappe_docker
cd frappe_docker
- Étape 2 : créez le fichier
apps.jsonà la racine du dépôt. Il liste les applications à installer dans l'image.
[
{
"url": "https://gitlab.com/dokos/payments",
"branch": "v5"
},
{
"url": "https://gitlab.com/dokos/hrms",
"branch": "v5"
},
{
"url": "https://gitlab.com/dokos/dokos",
"branch": "v5"
}
]
- Étape 3 : construisez l'image à partir de
images/custom/Containerfile.
docker build \
--build-arg=FRAPPE_PATH=https://gitlab.com/dokos/dodock \
--build-arg=FRAPPE_BRANCH=v5 \
--build-arg=PYTHON_VERSION=3.14 \
--build-arg=NODE_VERSION=24 \
--secret=id=apps_json,src=apps.json \
--tag=custom-dokos:v5 \
--file=images/custom/Containerfile .
Le fichier apps.json passe par --secret et non par --build-arg : Frappe Docker ne lit plus la variable APPS_JSON_BASE64. Un secret n'est pas gardé dans l'historique de l'image, ce qui protège un éventuel jeton d'accès à un dépôt privé.
FRAPPE_BRANCH, indiquez la version de Dodock que vous souhaitez installer. Dodock v5 demande Python 3.14 (PYTHON_VERSION) et Node.js 24 ou ultérieur (NODE_VERSION). Ce sont aussi les valeurs par défaut du Containerfile de Frappe Docker : vous pouvez omettre ces deux options, mais les écrire fixe les versions si les valeurs par défaut changent.Création d'un site Dokos
Le fichier pwd.yml de Frappe Docker utilise les images d'ERPNext (frappe/erpnext:<version>). Avant de créer votre site Dokos, remplacez-les par le tag de votre image :
sed -i 's#image: frappe/erpnext:.*#image: custom-dokos:v5#' pwd.yml
Le service create-site installe ERPNext sur le site. Remplacez --install-app erpnext par les applications de votre image. Payments est installé avec Dokos, dont il est une dépendance :
sed -i 's/--install-app erpnext/--install-app dokos --install-app hrms/' pwd.yml
Vérifiez le résultat avec grep -n "image:\|install-app" pwd.yml.
Vous pouvez ensuite lancer votre site Dokos, en utilisant la commande :
docker compose -p dokos -f pwd.yml up -d
L'installation du site peut prendre quelques minutes, vous pouvez suivre son avancement avec la commande docker logs dokos-create-site-1 -f, ou simplement attendre avec docker wait dokos-create-site-1.
Ensuite, vous pouvez suivre les instructions de l'installation Docker de Dokos.
Anciennes méthodes et liens utiles
- Communauté Dokos --- Fichier .gitlab-ci.yml pour génération automatique d'images Docker de Dokos (par Adrien)
- GitLab --- Dokidocker (par Dokos)
- GitHub --- Monogramm/docker-dokos-ext (par Christophe et Mathieu)