Merge branch 'main' into issues-16

This commit is contained in:
Aloïs Micard
2025-03-13 08:25:06 +01:00
17 changed files with 82 additions and 13 deletions

View File

@@ -1,8 +1,11 @@
name: build
on:
push:
branches:
- main
#push:
# branches:
# - main
# can run job manually
workflow_dispatch:
# Run once a week
schedule:
- cron: '0 0 * * 6'

View File

@@ -29,7 +29,9 @@ jobs:
- env:
DOLI_INSTALL_AUTO: 0
run: |
# Regenerate all the image files
./update.sh
# Try to build the image inimages/develop
docker build -t dolibarr/dolibarr:develop images/develop
docker run -d -p 127.0.0.1:80:80 --name dolibarr dolibarr/dolibarr:develop
docker ps | grep -q dolibarr

View File

@@ -67,6 +67,7 @@ services:
DOLI_ADMIN_LOGIN: "${DOLI_ADMIN_LOGIN:-admin}"
DOLI_ADMIN_PASSWORD: "${DOLI_ADMIN_PASSWORD:-admin}"
DOLI_CRON: ${DOLI_CRON:-0}
DOLI_CRON_KEY: ${DOLI_CRON_KEY:-mycronsecurekey}
DOLI_INIT_DEMO: ${DOLI_INIT_DEMO:-0}
DOLI_COMPANY_NAME: ${DOLI_COMPANY_NAME:-MyBigCompany}
@@ -234,6 +235,8 @@ services:
DOLI_URL_ROOT: "${DOLI_URL_ROOT:-http://0.0.0.0}"
DOLI_ADMIN_LOGIN: "${DOLI_ADMIN_LOGIN:-admin}"
DOLI_ADMIN_PASSWORD: "${DOLI_ADMIN_PASSWORD:-admin}"
DOLI_CRON: ${DOLI_CRON:-0}
DOLI_CRON_KEY: ${DOLI_CRON_KEY:-mycronsecurekey}
DOLI_INIT_DEMO: ${DOLI_INIT_DEMO:-0}
WWW_USER_ID: ${WWW_USER_ID:-1000}
WWW_GROUP_ID: ${WWW_GROUP_ID:-1000}

View File

@@ -31,6 +31,7 @@ services:
- mysql-user
- mysql-password
environment:
#MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD:-root}
MYSQL_RANDOM_ROOT_PASSWORD: "1"
MYSQL_DATABASE: "dolidb"
MYSQL_USER_FILE: "/run/secrets/mysql-user"
@@ -86,6 +87,7 @@ services:
DOLI_URL_ROOT: 'http://0.0.0.0:81'
DOLI_INSTANCE_UNIQUE_ID: myinstanceuniqueid
DOLI_INIT_DEMO: 1
DOLI_CRON_KEY: mycronsecurekey
ports:
- "81:80"
networks:

View File

@@ -267,6 +267,10 @@ function initializeDatabase()
echo "Enable user module ..." >> /var/www/documents/initdb.log
php /var/www/scripts/docker-init.php
echo "Set cron key to ${DOLI_CRON_KEY}..."
echo "Set cron key to ${DOLI_CRON_KEY}..." >> /var/www/documents/initdb.log
mysql -u ${DOLI_DB_USER} -p${DOLI_DB_PASSWORD} -h ${DOLI_DB_HOST} -P ${DOLI_DB_HOST_PORT} ${DOLI_DB_NAME} -e "UPDATE llx_const set value = '${DOLI_CRON_KEY}' WHERE name = 'CRON_KEY'" >> /var/www/documents/initdb.log 2>&1
# Run init scripts
echo "Run scripts into docker-init.d if there is ..."
echo "Run scripts into docker-init.d if there is ..." >> /var/www/documents/initdb.log
@@ -431,6 +435,8 @@ function run()
echo "*** You can connect to the docker Mariadb with:"
echo "sudo docker exec -it nameofwebcontainer-mariadb-1 bash"
echo "mariadb -uroot -p'MYSQL_ROOT_PASSWORD' -h localhost"
echo "or"
echo "mariadb -uxxx -p'yyy' -h mariadb where xxx is in /run/secrets/mysql-user and yyy in /run/secrets/mysql-password"
echo "ls /var/lib/mysql"
echo
echo "*** You can connect to the docker Dolibarr with:"

View File

@@ -15,8 +15,8 @@ services:
environment:
DOLI_DB_HOST: "mysql"
DOLI_DB_HOST_PORT: "3306"
DOLI_DB_USER: "dolibarr"
DOLI_DB_PASSWORD: "mysupersecretpasswordfordatabase"
DOLI_DB_USER: "dolidbuser"
DOLI_DB_PASSWORD: "dolidbpass"
DOLI_DB_NAME: "dolibarr"
DOLI_ADMIN_LOGIN: "admin"
DOLI_ADMIN_PASSWORD: "mysuperhypersecretpasswordforadminacount"

View File

@@ -1 +1 @@
mysupersecretpasswordfordatabase
dolidbpass

View File

@@ -1 +1 @@
dolibarr
dolidbuser

View File

@@ -267,6 +267,10 @@ function initializeDatabase()
echo "Enable user module ..." >> /var/www/documents/initdb.log
php /var/www/scripts/docker-init.php
echo "Set cron key to ${DOLI_CRON_KEY}..."
echo "Set cron key to ${DOLI_CRON_KEY}..." >> /var/www/documents/initdb.log
mysql -u ${DOLI_DB_USER} -p${DOLI_DB_PASSWORD} -h ${DOLI_DB_HOST} -P ${DOLI_DB_HOST_PORT} ${DOLI_DB_NAME} -e "UPDATE llx_const set value = '${DOLI_CRON_KEY}' WHERE name = 'CRON_KEY'" >> /var/www/documents/initdb.log 2>&1
# Run init scripts
echo "Run scripts into docker-init.d if there is ..."
echo "Run scripts into docker-init.d if there is ..." >> /var/www/documents/initdb.log
@@ -431,6 +435,8 @@ function run()
echo "*** You can connect to the docker Mariadb with:"
echo "sudo docker exec -it nameofwebcontainer-mariadb-1 bash"
echo "mariadb -uroot -p'MYSQL_ROOT_PASSWORD' -h localhost"
echo "or"
echo "mariadb -uxxx -p'yyy' -h mariadb where xxx is in /run/secrets/mysql-user and yyy in /run/secrets/mysql-password"
echo "ls /var/lib/mysql"
echo
echo "*** You can connect to the docker Dolibarr with:"

View File

@@ -267,6 +267,10 @@ function initializeDatabase()
echo "Enable user module ..." >> /var/www/documents/initdb.log
php /var/www/scripts/docker-init.php
echo "Set cron key to ${DOLI_CRON_KEY}..."
echo "Set cron key to ${DOLI_CRON_KEY}..." >> /var/www/documents/initdb.log
mysql -u ${DOLI_DB_USER} -p${DOLI_DB_PASSWORD} -h ${DOLI_DB_HOST} -P ${DOLI_DB_HOST_PORT} ${DOLI_DB_NAME} -e "UPDATE llx_const set value = '${DOLI_CRON_KEY}' WHERE name = 'CRON_KEY'" >> /var/www/documents/initdb.log 2>&1
# Run init scripts
echo "Run scripts into docker-init.d if there is ..."
echo "Run scripts into docker-init.d if there is ..." >> /var/www/documents/initdb.log
@@ -431,6 +435,8 @@ function run()
echo "*** You can connect to the docker Mariadb with:"
echo "sudo docker exec -it nameofwebcontainer-mariadb-1 bash"
echo "mariadb -uroot -p'MYSQL_ROOT_PASSWORD' -h localhost"
echo "or"
echo "mariadb -uxxx -p'yyy' -h mariadb where xxx is in /run/secrets/mysql-user and yyy in /run/secrets/mysql-password"
echo "ls /var/lib/mysql"
echo
echo "*** You can connect to the docker Dolibarr with:"

View File

@@ -267,6 +267,10 @@ function initializeDatabase()
echo "Enable user module ..." >> /var/www/documents/initdb.log
php /var/www/scripts/docker-init.php
echo "Set cron key to ${DOLI_CRON_KEY}..."
echo "Set cron key to ${DOLI_CRON_KEY}..." >> /var/www/documents/initdb.log
mysql -u ${DOLI_DB_USER} -p${DOLI_DB_PASSWORD} -h ${DOLI_DB_HOST} -P ${DOLI_DB_HOST_PORT} ${DOLI_DB_NAME} -e "UPDATE llx_const set value = '${DOLI_CRON_KEY}' WHERE name = 'CRON_KEY'" >> /var/www/documents/initdb.log 2>&1
# Run init scripts
echo "Run scripts into docker-init.d if there is ..."
echo "Run scripts into docker-init.d if there is ..." >> /var/www/documents/initdb.log
@@ -431,6 +435,8 @@ function run()
echo "*** You can connect to the docker Mariadb with:"
echo "sudo docker exec -it nameofwebcontainer-mariadb-1 bash"
echo "mariadb -uroot -p'MYSQL_ROOT_PASSWORD' -h localhost"
echo "or"
echo "mariadb -uxxx -p'yyy' -h mariadb where xxx is in /run/secrets/mysql-user and yyy in /run/secrets/mysql-password"
echo "ls /var/lib/mysql"
echo
echo "*** You can connect to the docker Dolibarr with:"

View File

@@ -267,6 +267,10 @@ function initializeDatabase()
echo "Enable user module ..." >> /var/www/documents/initdb.log
php /var/www/scripts/docker-init.php
echo "Set cron key to ${DOLI_CRON_KEY}..."
echo "Set cron key to ${DOLI_CRON_KEY}..." >> /var/www/documents/initdb.log
mysql -u ${DOLI_DB_USER} -p${DOLI_DB_PASSWORD} -h ${DOLI_DB_HOST} -P ${DOLI_DB_HOST_PORT} ${DOLI_DB_NAME} -e "UPDATE llx_const set value = '${DOLI_CRON_KEY}' WHERE name = 'CRON_KEY'" >> /var/www/documents/initdb.log 2>&1
# Run init scripts
echo "Run scripts into docker-init.d if there is ..."
echo "Run scripts into docker-init.d if there is ..." >> /var/www/documents/initdb.log
@@ -431,6 +435,8 @@ function run()
echo "*** You can connect to the docker Mariadb with:"
echo "sudo docker exec -it nameofwebcontainer-mariadb-1 bash"
echo "mariadb -uroot -p'MYSQL_ROOT_PASSWORD' -h localhost"
echo "or"
echo "mariadb -uxxx -p'yyy' -h mariadb where xxx is in /run/secrets/mysql-user and yyy in /run/secrets/mysql-password"
echo "ls /var/lib/mysql"
echo
echo "*** You can connect to the docker Dolibarr with:"

View File

@@ -267,6 +267,10 @@ function initializeDatabase()
echo "Enable user module ..." >> /var/www/documents/initdb.log
php /var/www/scripts/docker-init.php
echo "Set cron key to ${DOLI_CRON_KEY}..."
echo "Set cron key to ${DOLI_CRON_KEY}..." >> /var/www/documents/initdb.log
mysql -u ${DOLI_DB_USER} -p${DOLI_DB_PASSWORD} -h ${DOLI_DB_HOST} -P ${DOLI_DB_HOST_PORT} ${DOLI_DB_NAME} -e "UPDATE llx_const set value = '${DOLI_CRON_KEY}' WHERE name = 'CRON_KEY'" >> /var/www/documents/initdb.log 2>&1
# Run init scripts
echo "Run scripts into docker-init.d if there is ..."
echo "Run scripts into docker-init.d if there is ..." >> /var/www/documents/initdb.log
@@ -431,6 +435,8 @@ function run()
echo "*** You can connect to the docker Mariadb with:"
echo "sudo docker exec -it nameofwebcontainer-mariadb-1 bash"
echo "mariadb -uroot -p'MYSQL_ROOT_PASSWORD' -h localhost"
echo "or"
echo "mariadb -uxxx -p'yyy' -h mariadb where xxx is in /run/secrets/mysql-user and yyy in /run/secrets/mysql-password"
echo "ls /var/lib/mysql"
echo
echo "*** You can connect to the docker Dolibarr with:"

View File

@@ -267,6 +267,10 @@ function initializeDatabase()
echo "Enable user module ..." >> /var/www/documents/initdb.log
php /var/www/scripts/docker-init.php
echo "Set cron key to ${DOLI_CRON_KEY}..."
echo "Set cron key to ${DOLI_CRON_KEY}..." >> /var/www/documents/initdb.log
mysql -u ${DOLI_DB_USER} -p${DOLI_DB_PASSWORD} -h ${DOLI_DB_HOST} -P ${DOLI_DB_HOST_PORT} ${DOLI_DB_NAME} -e "UPDATE llx_const set value = '${DOLI_CRON_KEY}' WHERE name = 'CRON_KEY'" >> /var/www/documents/initdb.log 2>&1
# Run init scripts
echo "Run scripts into docker-init.d if there is ..."
echo "Run scripts into docker-init.d if there is ..." >> /var/www/documents/initdb.log
@@ -431,6 +435,8 @@ function run()
echo "*** You can connect to the docker Mariadb with:"
echo "sudo docker exec -it nameofwebcontainer-mariadb-1 bash"
echo "mariadb -uroot -p'MYSQL_ROOT_PASSWORD' -h localhost"
echo "or"
echo "mariadb -uxxx -p'yyy' -h mariadb where xxx is in /run/secrets/mysql-user and yyy in /run/secrets/mysql-password"
echo "ls /var/lib/mysql"
echo
echo "*** You can connect to the docker Dolibarr with:"

View File

@@ -267,6 +267,10 @@ function initializeDatabase()
echo "Enable user module ..." >> /var/www/documents/initdb.log
php /var/www/scripts/docker-init.php
echo "Set cron key to ${DOLI_CRON_KEY}..."
echo "Set cron key to ${DOLI_CRON_KEY}..." >> /var/www/documents/initdb.log
mysql -u ${DOLI_DB_USER} -p${DOLI_DB_PASSWORD} -h ${DOLI_DB_HOST} -P ${DOLI_DB_HOST_PORT} ${DOLI_DB_NAME} -e "UPDATE llx_const set value = '${DOLI_CRON_KEY}' WHERE name = 'CRON_KEY'" >> /var/www/documents/initdb.log 2>&1
# Run init scripts
echo "Run scripts into docker-init.d if there is ..."
echo "Run scripts into docker-init.d if there is ..." >> /var/www/documents/initdb.log
@@ -431,6 +435,8 @@ function run()
echo "*** You can connect to the docker Mariadb with:"
echo "sudo docker exec -it nameofwebcontainer-mariadb-1 bash"
echo "mariadb -uroot -p'MYSQL_ROOT_PASSWORD' -h localhost"
echo "or"
echo "mariadb -uxxx -p'yyy' -h mariadb where xxx is in /run/secrets/mysql-user and yyy in /run/secrets/mysql-password"
echo "ls /var/lib/mysql"
echo
echo "*** You can connect to the docker Dolibarr with:"

19
test.sh
View File

@@ -13,12 +13,17 @@ BASE_DIR="$( cd "$(dirname "$0")" && pwd )"
DOLI_VER=${1}
PHP_VER=${2:-""}
echo "Test - working in $BASE_DIR"
if [ "${DOLI_VER}" = "" ]; then
echo "Usage: sudo test.sh develop"
echo " sudo test.sh 18.0.5 8.1"
echo "Usage: sudo test.sh dolversion [phpversion]"
echo " The couple dolversion/phpversion must be an existing couple into /images directory."
echo "Example: sudo test.sh develop"
echo " sudo test.sh 18.0.5 8.1"
exit
fi
# Create links of images into docker-compose-links
rm -rf "${BASE_DIR}/docker-compose-links/" && mkdir "${BASE_DIR}/docker-compose-links"
# shellcheck disable=SC2044
@@ -45,17 +50,23 @@ echo "Testing for:"
echo " - Dolibarr ${DOLI_VER}"
if [ "${PHP_VER}" = "" ]; then
echo " - PHP most recent"
echo "Building image ..."
echo "Stopping existing image (if exists) ..."
echo "DOLI_VERSION=${DOLI_VER} PHP_VERSION='' $dockerComposeBin -f '${BASE_DIR}/docker-compose.yml' [down|...]"
DOLI_VERSION=${DOLI_VER} PHP_VERSION="" $dockerComposeBin -f "${BASE_DIR}/docker-compose.yml" down 1>/dev/null
echo "Building image using docker-compose.yml in $BASE_DIR..."
DOLI_VERSION=${DOLI_VER} PHP_VERSION="" $dockerComposeBin -f "${BASE_DIR}/docker-compose.yml" build web
echo "Starting image ..."
DOLI_VERSION=${DOLI_VER} PHP_VERSION="" $dockerComposeBin -f "${BASE_DIR}/docker-compose.yml" up --force-recreate web cron
echo "Stopping image ..."
DOLI_VERSION=${DOLI_VER} PHP_VERSION="" $dockerComposeBin -f "${BASE_DIR}/docker-compose.yml" down
else
echo " - PHP ${PHP_VER}"
echo "Building image ..."
echo "Stopping existing image (if exists) ..."
DOLI_VERSION=${DOLI_VER} PHP_VERSION="-php${PHP_VER}" $dockerComposeBin -f "${BASE_DIR}/docker-compose.yml" down 1>/dev/null
echo "Building image using docker-compose.yml in $BASE_DIR..."
DOLI_VERSION=${DOLI_VER} PHP_VERSION="-php${PHP_VER}" $dockerComposeBin -f "${BASE_DIR}/docker-compose.yml" build web
echo "Starting image ..."
DOLI_VERSION=${DOLI_VER} PHP_VERSION="-php${PHP_VER}" $dockerComposeBin -f "${BASE_DIR}/docker-compose.yml" up --force-recreate web cron
echo "Stopping image ..."
DOLI_VERSION=${DOLI_VER} PHP_VERSION="-php${PHP_VER}" $dockerComposeBin -f "${BASE_DIR}/docker-compose.yml" down
fi

View File

@@ -1,7 +1,7 @@
#!/bin/bash
#
# Run this script to generate all files found into images directory, used for each image.
# The source files are the files into the root.
# Run this script to generate all files (Dockerfile, docker-init.php, docker-run.php) found into images directory,
# used for each image. The source files are the files into the root.
#
set -e