Bonjour à tous,
Je souhaite installer Dolibarr sur un hébergement mutualisé à l’aide d’une stack docker. Cette stack contient :
- un service dolibarr
- un service mariadb pour dolibarr
- un service traefik car j’ai pour objectif un hébergement multisite
Ainsi, j’ai utilisé l’image de Tuxgasy et je l’ai modifié pour l’adapter à mon besoin :
version: "3.7"
services:
traefik:
image: traefik:v2.9
command:
- --api.insecure=true
- --providers.docker
- --entrypoints.web.address=:80
ports:
- "80:80"
- "8080:8080"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
labels:
- "traefik.enable=true"
- "traefik.http.routers.api.rule=Host(`MON_IP`) && PathPrefix(`/api`)"
- "traefik.http.routers.api.service=api@internal"
- "traefik.http.routers.api.entrypoints=web"
dolibarr:
image: tuxgasy/dolibarr:latest
environment:
DOLI_DB_HOST: mariadb
DOLI_DB_USER: dolibarr
DOLI_DB_PASSWORD_FILE: /run/secrets/mysql_dolibarr_password
DOLI_DB_NAME: dolibarr
DOLI_URL_ROOT: 'http://MON_IP/dolibarr'
PHP_INI_DATE_TIMEZONE: 'Europe/Paris'
secrets:
- mysql_dolibarr_password
volumes:
- dolibarr_data:/var/documents
- ./dolibarr.conf:/etc/apache2/sites-available/000-default.conf
labels:
- "traefik.enable=true"
- "traefik.http.routers.dolibarr.rule=Host(`MON_IP`) && PathPrefix(`/dolibarr`)"
- "traefik.http.routers.dolibarr.entrypoints=web"
- "traefik.http.routers.dolibarr.middlewares=dolibarr-strip"
- "traefik.http.middlewares.dolibarr-strip.stripprefix.prefixes=/dolibarr"
- "traefik.http.services.dolibarr.loadbalancer.server.port=80"
depends_on:
- mariadb
restart: unless-stopped
mariadb:
image: mariadb:latest
environment:
MYSQL_ROOT_PASSWORD_FILE: /run/secrets/mysql_root_password
MYSQL_DATABASE: dolibarr
secrets:
- mysql_root_password
- mysql_dolibarr_password
volumes:
- mariadb_data:/var/lib/mysql
- ./update_password.sh:/docker-entrypoint-initdb.d/update_password.sh
configs:
- source: init_sql
target: /docker-entrypoint-initdb.d/init.sql
restart: unless-stopped
volumes:
mariadb_data:
dolibarr_data:
secrets:
mysql_root_password:
external: true
mysql_dolibarr_password:
external: true
configs:
init_sql:
file: /home/init.sql
Le script init.sql contient :
CREATE USER 'dolibarr'@'%' IDENTIFIED BY 'temp_password';
GRANT ALL PRIVILEGES ON dolibarr.* TO 'dolibarr'@'%';
FLUSH PRIVILEGES;
Le script update_password.sh contient :
#!/bin/bash
set -e
# Lire le mot de passe du secret Docker
DOLIBARR_PASSWORD=$(cat /run/secrets/mysql_dolibarr_password)
# Mettre à jour le mot de passe de l'utilisateur Dolibarr
mariadb -uroot -p"$MYSQL_ROOT_PASSWORD" -e "ALTER USER 'dolibarr'@'%' IDENTIFIED BY '$DOLIBARR_PASSWORD'; FLUSH PRIVILEGES;"
Lorsque je vais sur http://MON_IP/dolibarr je tombe bien sur la page de connexion de dolibarr. Je peux également accéder à la page de réinitialisation du mot de passe et de support.
Cependant, lorsque je rentre les identifiants de connexion et que je clique sur connecter, je suis redirigé vers : http://MON_IP/index.php?mainmenu=home
(notez qu’il n’y a plus le /dolibarr ) . J’ai essayé de rentrer manuellement le /dolibarr mais cela me renvoie à la page de connexion
Or il me semble avoir bien configuré la variable DOLI_URL_ROOT dans mon docker-compose.yml
J’ai regardé sur différents sites mais je ne trouve pas de solution à mon problème, si quelqu’un à une solution je suis preneur, merci d’avance