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.
- Étape 1: Clonez
https://github.com/frappe/frappe_docker
git clone https://github.com/frappe/frappe_docker
- Étape 2: Configurez les applications à installer dans l'image finale.
export APPS_JSON='[
{
"url": "https://gitlab.com/dokos/payments",
"branch": "v4"
},
{
"url": "https://gitlab.com/dokos/hrms",
"branch": "v4"
},
{
"url": "https://gitlab.com/dokos/dokos",
"branch": "v4"
}
]'
export APPS_JSON_BASE64=$(echo ${APPS_JSON} | base64 -w 0)
Les dernières versions sont disponibles dans les répertoires GitLab de chaque application.
- Étape 3: Construisez l'image à partir de
images/custom/Dockerfile
.
docker build \
--build-arg=FRAPPE_PATH=https://gitlab.com/dokos/dodock \
--build-arg=FRAPPE_BRANCH=v4 \
--build-arg=PYTHON_VERSION=3.10 \
--build-arg=NODE_VERSION=18.17.0 \
--build-arg=APPS_JSON_BASE64=$APPS_JSON_BASE64 \
--tag=custom-dokos:v4 \
--file=images/custom/Containerfile .
FRAPPE_BRANCH
, pensez à la mettre à jour avec la version de Dodock que vous souhaitez installer.Création d'un site Dokos
Avant de lancer la création de votre site Dokos, éditez le fichier pwd.yml
et remplacez la version des images d'ERPNext par le tag que vous avez utilisé lors de la construction de vos images.
@@ -2,7 +2,7 @@ version: "3"
services:
backend:
- image: frappe/erpnext:v14.17.1
+ image: custom-dokos:v4
configurator:
- image: frappe/erpnext:v14.17.1
+ image: custom-dokos:v4
create-site:
- image: frappe/erpnext:v14.17.1
+ image: custom-dokos:v4
frontend:
- image: frappe/erpnext:v14.17.1
+ image: custom-dokos:v4
queue-default:
- image: frappe/erpnext:v14.17.1
+ image: custom-dokos:v4
queue-long:
- image: frappe/erpnext:v14.17.1
+ image: custom-dokos:v4
queue-short:
- image: frappe/erpnext:v14.17.1
+ image: custom-dokos:v4
scheduler:
- image: frappe/erpnext:v14.17.1
+ image: custom-dokos:v4
websocket:
- image: frappe/erpnext:v14.17.1
+ image: custom-dokos:v4
De plus, si vous souhaitez installer HRMS sur votre site, modifiez la ligne suivante :
@@ -68,7 +68,7 @@ services:
fi
done;
echo "sites/common_site_config.json found";
- bench new-site frontend --no-mariadb-socket --admin-password=admin --db-root-password=admin --install-app erpnext --set-default;
+ bench new-site frontend --no-mariadb-socket --admin-password=admin --db-root-password=admin --install-app dokos --install-app hrms --set-default;
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 standard 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)