tuxgasy/docker-dolibarr

Wrong page after login

franciscohosting opened this issue · 1 comments

Hello tuxgasy, first of all good work!
Second, well I have a problem, I have everything configured, but when I login to Dolibarr it gets me to the wrong page.
I login in:
https://some.server.com/dolibarr/
(because I have several other containers)
but it gets me to:
https://some.server.com/index.php?mainmenu=home
(if I send a POST with the credentials to https://some.server.com/dolibarr/index.php?mainmenu=home it logs me and everything works like a charm)

my docker-compose file is:
`version: '3'

services:
dolibarr:
image: tuxgasy/dolibarr
container_name: dolibarr
depends_on:
- mysql
- traefik
labels:
- "traefik.enable=true"
- "traefik.backend=dolibarr"
- "traefik.dolibarr.frontend.rule=Host:${SUBDOMAIN}.${DOMAIN_NAME}.${DOMAIN_TLD};PathPrefixStrip:/${DOLIBARR_PATH}"
environment:
- DOLI_DB_HOST=mysql
- DOLI_DB_USER=${MYSQL_ADD_DOLIBARR}
- DOLI_DB_PASSWORD=${ADMIN_PASSWORD}
- DOLI_DB_NAME=${MYSQL_ADD_DOLIBARR}
- DOLI_ADMIN_LOGIN=root
- DOLI_ADMIN_PASSWORD=${ADMIN_PASSWORD}
- DOLI_URL_ROOT=https://${SUBDOMAIN}.${DOMAIN_NAME}.${DOMAIN_TLD}/${DOLIBARR_PATH}
- PHP_INI_DATE_TIMEZONE='Continent/Country'
links:
- mysql
mysql:
environment:
- MYSQL_ADD_DOLIBARR=${MYSQL_ADD_DOLIBARR}
`
Thanks for your time!

I fixed it, I made a script which edits the login file in the container (/var/www/html/core/tpl/login.tpl.php) to redirect to $DOLIBARR_PATH
docker-compose.dolibarr.yml:

version: '3'

services:
  dolibarr:
    image: hufon/dolibarr:10.0.2
    container_name: dolibarr
    depends_on:
      - mysql
      - traefik
    volumes:
     - ./src/dolibarr/loginfix.sh:/loginfix.sh
    labels:
      - "traefik.enable=true"
      - "traefik.backend=dolibarr"
      - "traefik.dolibarr.frontend.rule=Host:${SUBDOMAIN}.${DOMAIN_NAME}.${DOMAIN_TLD};PathPrefixStrip:/${DOLIBARR_PATH}"
    environment:
      - DOLI_DB_HOST=mysql 
      - DOLI_DB_USER=${MYSQL_ADD_DOLIBARR}
      - DOLI_DB_PASSWORD=${ADMIN_PASSWORD}
      - DOLI_DB_NAME=${MYSQL_ADD_DOLIBARR}
      - DOLI_ADMIN_LOGIN=root
      - DOLI_ADMIN_PASSWORD=${ADMIN_PASSWORD}
      - DOLI_URL_ROOT=https://${SUBDOMAIN}.${DOMAIN_NAME}.${DOMAIN_TLD}/${DOLIBARR_PATH}
      - PHP_INI_DATE_TIMEZONE='Continent/City'
      - DOLIBARR_PATH=${DOLIBARR_PATH}
    links:
      - mysql
    entrypoint: /loginfix.sh 

  mysql:
    environment:
      - MYSQL_ADD_DOLIBARR=${MYSQL_ADD_DOLIBARR}

and the loginfix.sh as follows:

#!/bin/bash
set -eu
PLACE="/var/www/html/core/tpl/login.tpl.php"

if grep -q "DOLIBARR_PATH" $PLACE; then
    echo "Info: login already fixed"
else
    echo "Info: fixing login"
    sed -i 's/action="<?php echo $php_self/echo getenv("DOLIBARR_PATH").$php_self/g' $PLACE
fi

exec /usr/local/bin/docker-run.sh