Skip to content

Commit 514caf7

Browse files
committed
NEW Test if init demo file download fails. Test also if db exists.
Fix init demo for develop version.
1 parent 90c01d9 commit 514caf7

18 files changed

+588
-279
lines changed

Dockerfile.template

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,8 +36,8 @@ ENV WWW_GROUP_ID 33
3636

3737
ENV PHP_INI_DATE_TIMEZONE 'UTC'
3838
ENV PHP_INI_MEMORY_LIMIT 256M
39-
ENV PHP_INI_UPLOAD_MAX_FILESIZE 2M
40-
ENV PHP_INI_POST_MAX_SIZE 8M
39+
ENV PHP_INI_UPLOAD_MAX_FILESIZE 20M
40+
ENV PHP_INI_POST_MAX_SIZE 22M
4141
ENV PHP_INI_ALLOW_URL_FOPEN 0
4242

4343
RUN sed -i \

docker-compose.yml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -48,8 +48,8 @@ services:
4848
DOLI_INSTANCE_UNIQUE_ID: xxxx
4949
DOLI_DB_USER_FILE: /run/secrets/mysql-user
5050
DOLI_DB_PASSWORD_FILE: /run/secrets/mysql-password
51-
DOLI_ADMIN_LOGIN: administrator
52-
DOLI_ADMIN_PASSWORD: admin456
51+
DOLI_ADMIN_LOGIN: admintest
52+
DOLI_ADMIN_PASSWORD: admintest
5353
DOLI_DB_HOST: mariadb
5454
DOLI_DB_NAME: dolibarr
5555
DOLI_URL_ROOT: http://0.0.0.0
@@ -71,11 +71,11 @@ services:
7171
depends_on:
7272
- mariadb
7373
environment:
74-
DOL_INIT_DEMO: 1
74+
DOLI_INIT_DEMO: 1
7575
DOLI_DB_USER_FILE: "/run/secrets/mysql-user"
7676
DOLI_DB_PASSWORD_FILE: "/run/secrets/mysql-password"
77-
DOLI_ADMIN_LOGIN: "administrator"
78-
DOLI_ADMIN_PASSWORD: "admin456"
77+
DOLI_ADMIN_LOGIN: "admintest"
78+
DOLI_ADMIN_PASSWORD: "admintest"
7979
DOLI_DB_HOST: mariadb
8080
DOLI_DB_NAME: dolibarr
8181
DOLI_URL_ROOT: 'http://0.0.0.0'

docker-run.sh

Lines changed: 55 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -198,42 +198,54 @@ function initializeDatabase()
198198
mysql -u ${DOLI_DB_USER} -p${DOLI_DB_PASSWORD} -h ${DOLI_DB_HOST} -P ${DOLI_DB_HOST_PORT} ${DOLI_DB_NAME} < ${fileSQL} >> /var/www/documents/initdb.log 2>&1
199199
done
200200

201-
echo "Create SuperAdmin account ..."
202-
pass_crypted=`echo -n ${DOLI_ADMIN_PASSWORD} | md5sum | awk '{print $1}'`
203-
# Insert may fails if record already exists
204-
mysql -u ${DOLI_DB_USER} -p${DOLI_DB_PASSWORD} -h ${DOLI_DB_HOST} -P ${DOLI_DB_HOST_PORT} ${DOLI_DB_NAME} -e "INSERT INTO llx_user (entity, login, pass_crypted, lastname, admin, statut) VALUES (0, '${DOLI_ADMIN_LOGIN}', '${pass_crypted}', 'SuperAdmin', 1, 1);" >> /var/www/documents/initdb.log 2>&1
205-
# Insert may fails if record already exists
206-
mysql -u ${DOLI_DB_USER} -p${DOLI_DB_PASSWORD} -h ${DOLI_DB_HOST} -P ${DOLI_DB_HOST_PORT} ${DOLI_DB_NAME} -e "UPDATE llx_user SET pass_crypted = '${pass_crypted}' WHERE login = '${DOLI_ADMIN_LOGIN}';" >> /var/www/documents/initdb.log 2>&1
207-
208201
echo "Set some default const ..."
209202
mysql -u ${DOLI_DB_USER} -p${DOLI_DB_PASSWORD} -h ${DOLI_DB_HOST} -P ${DOLI_DB_HOST_PORT} ${DOLI_DB_NAME} -e "DELETE FROM llx_const WHERE name='MAIN_VERSION_LAST_INSTALL';" >> /var/www/documents/initdb.log 2>&1
210203
mysql -u ${DOLI_DB_USER} -p${DOLI_DB_PASSWORD} -h ${DOLI_DB_HOST} -P ${DOLI_DB_HOST_PORT} ${DOLI_DB_NAME} -e "DELETE FROM llx_const WHERE name='MAIN_NOT_INSTALLED';" >> /var/www/documents/initdb.log 2>&1
211204
mysql -u ${DOLI_DB_USER} -p${DOLI_DB_PASSWORD} -h ${DOLI_DB_HOST} -P ${DOLI_DB_HOST_PORT} ${DOLI_DB_NAME} -e "DELETE FROM llx_const WHERE name='MAIN_LANG_DEFAULT';" >> /var/www/documents/initdb.log 2>&1
212-
mysql -u ${DOLI_DB_USER} -p${DOLI_DB_PASSWORD} -h ${DOLI_DB_HOST} -P ${DOLI_DB_HOST_PORT} ${DOLI_DB_NAME} -e "INSERT INTO llx_const(name,value,type,visible,note,entity) values('MAIN_VERSION_LAST_INSTALL', '${DOLI_VERSION}', 'chaine', 0, 'Dolibarr version when install', 0);" >> /var/www/documents/initdb.log 2>&1
205+
mysql -u ${DOLI_DB_USER} -p${DOLI_DB_PASSWORD} -h ${DOLI_DB_HOST} -P ${DOLI_DB_HOST_PORT} ${DOLI_DB_NAME} -e "INSERT INTO llx_const(name,value,type,visible,note,entity) VALUES ('MAIN_VERSION_LAST_INSTALL', '${DOLI_VERSION}', 'chaine', 0, 'Dolibarr version when install', 0);" >> /var/www/documents/initdb.log 2>&1
213206
mysql -u ${DOLI_DB_USER} -p${DOLI_DB_PASSWORD} -h ${DOLI_DB_HOST} -P ${DOLI_DB_HOST_PORT} ${DOLI_DB_NAME} -e "INSERT INTO llx_const(name,value,type,visible,note,entity) VALUES ('MAIN_LANG_DEFAULT', 'auto', 'chaine', 0, 'Default language', 1);" >> /var/www/documents/initdb.log 2>&1
214207
mysql -u ${DOLI_DB_USER} -p${DOLI_DB_PASSWORD} -h ${DOLI_DB_HOST} -P ${DOLI_DB_HOST_PORT} ${DOLI_DB_NAME} -e "INSERT INTO llx_const(name,value,type,visible,note,entity) VALUES ('SYSTEMTOOLS_MYSQLDUMP', '/usr/bin/mysqldump', 'chaine', 0, '', 0);" >> /var/www/documents/initdb.log 2>&1
215208

216209
if [[ ${DOLI_INIT_DEMO} -eq 1 ]]; then
217210
mkdir -p /var/www/dev/initdemo/
218-
> /var/www/documents/vi
219-
versiondemo=`echo "${DOLI_VERSION}" | sed "s/^\([0-9]*\.[0-9]*\).*/\1.0/"`
220-
echo "Get demo data from file https://raw.githubusercontent.com/Dolibarr/dolibarr/${DOLI_VERSION}/dev/initdemo/mysqldump_dolibarr_$versiondemo.sql ..."
211+
212+
echo "DOLI_VERSION=$DOLI_VERSION"
213+
# Convert version x.y into x.y.0
214+
if [ ${DOLI_VERSION} == "develop" ]; then
215+
echo "DOLI_VERSION is develop, we will use the file for version %DOLIBARR_VERSION_FOR_INIT_DEMO%"
216+
DOLI_VERSION="%DOLIBARR_VERSION_FOR_INIT_DEMO%"
217+
fi
218+
versiondemo=`echo "${DOLI_VERSION}" | sed "s/^\([0-9]*\.[0-9]*\).*/\1.0/"` # Convert vesion x.y into x.y.0
219+
echo "Get demo data with: curl -fLSs -o /var/www/dev/initdemo/initdemo.sql https://raw.githubusercontent.com/Dolibarr/dolibarr/${DOLI_VERSION}/dev/initdemo/mysqldump_dolibarr_$versiondemo.sql"
221220
curl -fLSs -o /var/www/dev/initdemo/initdemo.sql https://raw.githubusercontent.com/Dolibarr/dolibarr/${DOLI_VERSION}/dev/initdemo/mysqldump_dolibarr_$versiondemo.sql
222-
for fileSQL in /var/www/dev/initdemo/*.sql; do
223-
echo "Found demo data file, so we first drop table llx_accounting_system ..."
224-
echo "mysql -u ${DOLI_DB_USER} -pxxxxxxx -h ${DOLI_DB_HOST} -P ${DOLI_DB_HOST_PORT} ${DOLI_DB_NAME} -e \"DROP TABLE llx_accounting_account\" >> /var/www/documents/initdb.log 2>&1"
225-
mysql -u ${DOLI_DB_USER} -p${DOLI_DB_PASSWORD} -h ${DOLI_DB_HOST} -P ${DOLI_DB_HOST_PORT} ${DOLI_DB_NAME} -e "DROP TABLE llx_accounting_account" >> /var/www/documents/initdb.log 2>&1
226-
echo "mysql -u ${DOLI_DB_USER} -pxxxxxxx -h ${DOLI_DB_HOST} -P ${DOLI_DB_HOST_PORT} ${DOLI_DB_NAME} -e \"DROP TABLE llx_accounting_system\" >> /var/www/documents/initdb.log 2>&1"
227-
mysql -u ${DOLI_DB_USER} -p${DOLI_DB_PASSWORD} -h ${DOLI_DB_HOST} -P ${DOLI_DB_HOST_PORT} ${DOLI_DB_NAME} -e "DROP TABLE llx_accounting_system" >> /var/www/documents/initdb.log 2>&1
228-
echo "Then we load demo data ${fileSQL} ..."
229-
#sed -i 's/--.*//g;' ${fileSQL}
230-
echo "mysql -u ${DOLI_DB_USER} -pxxxxxxx -h ${DOLI_DB_HOST} -P ${DOLI_DB_HOST_PORT} ${DOLI_DB_NAME} < ${fileSQL} >> /var/www/documents/initdb.log 2>&1"
231-
mysql -u ${DOLI_DB_USER} -p${DOLI_DB_PASSWORD} -h ${DOLI_DB_HOST} -P ${DOLI_DB_HOST_PORT} ${DOLI_DB_NAME} < ${fileSQL} >> /var/www/documents/initdb.log 2>&1
232-
done
221+
if [ $? -ne 0 ]; then
222+
echo "ERROR: failed to get the online init demo file. No demo init will be done."
223+
else
224+
for fileSQL in /var/www/dev/initdemo/*.sql; do
225+
echo "Found demo data file, so we first drop table llx_accounting_system ..."
226+
echo "mysql -u ${DOLI_DB_USER} -pxxxxxxx -h ${DOLI_DB_HOST} -P ${DOLI_DB_HOST_PORT} ${DOLI_DB_NAME} -e \"DROP TABLE llx_accounting_account\" >> /var/www/documents/initdb.log 2>&1"
227+
mysql -u ${DOLI_DB_USER} -p${DOLI_DB_PASSWORD} -h ${DOLI_DB_HOST} -P ${DOLI_DB_HOST_PORT} ${DOLI_DB_NAME} -e "DROP TABLE llx_accounting_account" >> /var/www/documents/initdb.log 2>&1
228+
echo "mysql -u ${DOLI_DB_USER} -pxxxxxxx -h ${DOLI_DB_HOST} -P ${DOLI_DB_HOST_PORT} ${DOLI_DB_NAME} -e \"DROP TABLE llx_accounting_system\" >> /var/www/documents/initdb.log 2>&1"
229+
mysql -u ${DOLI_DB_USER} -p${DOLI_DB_PASSWORD} -h ${DOLI_DB_HOST} -P ${DOLI_DB_HOST_PORT} ${DOLI_DB_NAME} -e "DROP TABLE llx_accounting_system" >> /var/www/documents/initdb.log 2>&1
230+
echo "Then we load demo data ${fileSQL} ..."
231+
#sed -i 's/--.*//g;' ${fileSQL}
232+
echo "mysql -u ${DOLI_DB_USER} -pxxxxxxx -h ${DOLI_DB_HOST} -P ${DOLI_DB_HOST_PORT} ${DOLI_DB_NAME} < ${fileSQL} >> /var/www/documents/initdb.log 2>&1"
233+
mysql -u ${DOLI_DB_USER} -p${DOLI_DB_PASSWORD} -h ${DOLI_DB_HOST} -P ${DOLI_DB_HOST_PORT} ${DOLI_DB_NAME} < ${fileSQL} >> /var/www/documents/initdb.log 2>&1
234+
done
235+
fi
233236
else
234-
echo "DOLI_NIT_DEMO is off. No demo data load to do."
237+
echo "DOLI_INIT_DEMO is off. No demo data load to do."
235238
fi
236239

240+
echo "Create SuperAdmin account ..."
241+
pass_crypted=`echo -n ${DOLI_ADMIN_PASSWORD} | md5sum | awk '{print $1}'`
242+
#pass_crypted2=`php -r "echo password_hash(${DOLI_ADMIN_PASSWORD}, PASSWORD_BCRYPT);"`
243+
244+
# Insert may fails if record already exists
245+
mysql -u ${DOLI_DB_USER} -p${DOLI_DB_PASSWORD} -h ${DOLI_DB_HOST} -P ${DOLI_DB_HOST_PORT} ${DOLI_DB_NAME} -e "INSERT INTO llx_user (entity, login, pass_crypted, lastname, admin, statut) VALUES (0, '${DOLI_ADMIN_LOGIN}', '${pass_crypted}', 'SuperAdmin', 1, 1);" >> /var/www/documents/initdb.log 2>&1
246+
# Insert may fails if record already exists
247+
mysql -u ${DOLI_DB_USER} -p${DOLI_DB_PASSWORD} -h ${DOLI_DB_HOST} -P ${DOLI_DB_HOST_PORT} ${DOLI_DB_NAME} -e "UPDATE llx_user SET pass_crypted = '${pass_crypted}' WHERE login = '${DOLI_ADMIN_LOGIN}';" >> /var/www/documents/initdb.log 2>&1
248+
237249
echo "Enable user module ..."
238250
php /var/www/scripts/docker-init.php
239251

@@ -292,16 +304,28 @@ function run()
292304
if [[ ${DOLI_INSTALL_AUTO} -eq 1 && ${DOLI_CRON} -ne 1 && ${DOLI_DB_TYPE} != "pgsql" ]]; then
293305
echo "DOLI_INSTALL_AUTO is on, so we check to initialize or upgrade mariadb database"
294306

295-
# If install.lock does not exists, we launch the initializeDataze
296-
if [[ ! -f /var/www/documents/install.lock ]]; then
297-
waitForDataBase
307+
waitForDataBase
298308

299-
mysql -u ${DOLI_DB_USER} -p${DOLI_DB_PASSWORD} -h ${DOLI_DB_HOST} -P ${DOLI_DB_HOST_PORT} ${DOLI_DB_NAME} -e "SELECT Q.LAST_INSTALLED_VERSION FROM (SELECT INET_ATON(CONCAT(value, REPEAT('.0', 3 - CHAR_LENGTH(value) + CHAR_LENGTH(REPLACE(value, '.', ''))))) as VERSION_ATON, value as LAST_INSTALLED_VERSION FROM llx_const WHERE name IN ('MAIN_VERSION_LAST_INSTALL', 'MAIN_VERSION_LAST_UPGRADE') and entity=0) Q ORDER BY VERSION_ATON DESC LIMIT 1" > /var/www/documents/lastinstall.result 2>&1
309+
DB_EXISTS=0
310+
311+
echo "mysql -u ${DOLI_DB_USER} -pxxxxxx -h ${DOLI_DB_HOST} -P ${DOLI_DB_HOST_PORT} -e \"SELECT SCHEMA_NAME FROM information_schema.SCHEMATA WHERE SCHEMA_NAME = '${DOLI_DB_NAME}';\" > /tmp/docker-run-checkdb.result 2>&1" >> /var/www/documents/initdb.log 2>&1
312+
mysql -u ${DOLI_DB_USER} -p${DOLI_DB_PASSWORD} -h ${DOLI_DB_HOST} -P ${DOLI_DB_HOST_PORT} -e "SELECT SCHEMA_NAME FROM information_schema.SCHEMATA WHERE SCHEMA_NAME = '${DOLI_DB_NAME}';" > /tmp/docker-run-checkdb.result 2>&1
313+
r=$?
314+
if [[ ${r} -eq 0 ]]; then
315+
DB_EXISTS=`grep ${DOLI_DB_NAME} /tmp/docker-run-checkdb.result`
316+
fi
317+
echo "DB Exists is : ${DB_EXISTS}" >> /var/www/documents/initdb.log 2>&1
318+
echo "DB Exists is : ${DB_EXISTS}"
319+
320+
# If install.lock does not exists, or if db does not exists, we launch the initializeDatabase
321+
if [[ ! -f /var/www/documents/install.lock || "$DB_EXIST" -eq 0 ]]; then
322+
echo "mysql -u ${DOLI_DB_USER} -pxxxxxx -h ${DOLI_DB_HOST} -P ${DOLI_DB_HOST_PORT} ${DOLI_DB_NAME} -e \"SELECT Q.LAST_INSTALLED_VERSION FROM (SELECT INET_ATON(CONCAT(value, REPEAT('.0', 3 - CHAR_LENGTH(value) + CHAR_LENGTH(REPLACE(value, '.', ''))))) as VERSION_ATON, value as LAST_INSTALLED_VERSION FROM llx_const WHERE name IN ('MAIN_VERSION_LAST_INSTALL', 'MAIN_VERSION_LAST_UPGRADE') and entity=0) Q ORDER BY VERSION_ATON DESC LIMIT 1\" > /tmp/docker-run-lastinstall.result 2>&1" >> /var/www/documents/initdb.log 2>&1
323+
mysql -u ${DOLI_DB_USER} -p${DOLI_DB_PASSWORD} -h ${DOLI_DB_HOST} -P ${DOLI_DB_HOST_PORT} ${DOLI_DB_NAME} -e "SELECT Q.LAST_INSTALLED_VERSION FROM (SELECT INET_ATON(CONCAT(value, REPEAT('.0', 3 - CHAR_LENGTH(value) + CHAR_LENGTH(REPLACE(value, '.', ''))))) as VERSION_ATON, value as LAST_INSTALLED_VERSION FROM llx_const WHERE name IN ('MAIN_VERSION_LAST_INSTALL', 'MAIN_VERSION_LAST_UPGRADE') and entity=0) Q ORDER BY VERSION_ATON DESC LIMIT 1" > /tmp/docker-run-lastinstall.result 2>&1
300324
r=$?
301325
if [[ ${r} -ne 0 ]]; then
302326
initializeDatabase
303327
else
304-
INSTALLED_VERSION=`grep -v LAST_INSTALLED_VERSION /tmp/lastinstall.result`
328+
INSTALLED_VERSION=`grep -v LAST_INSTALLED_VERSION /tmp/docker-run-lastinstall.result`
305329
echo "Last installed Version is : ${INSTALLED_VERSION}"
306330
if [[ "$(echo ${INSTALLED_VERSION} | cut -d. -f1)" -lt "$(echo ${DOLI_VERSION} | cut -d. -f1)" ]]; then
307331
migrateDatabase
@@ -314,7 +338,7 @@ function run()
314338
lockInstallation
315339
fi
316340
else
317-
echo "File /var/www/documents/install.lock exists so we cancel database init"
341+
echo "File /var/www/documents/install.lock exists and database eists so we cancel database init"
318342
fi
319343
fi
320344

@@ -347,3 +371,5 @@ if [ "${1#-}" != "$1" ]; then
347371
fi
348372

349373
exec "$@"
374+
375+
echo "docker-run.sh finished."

images/15.0.3-php7.4/Dockerfile

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,8 +36,8 @@ ENV WWW_GROUP_ID 33
3636

3737
ENV PHP_INI_DATE_TIMEZONE 'UTC'
3838
ENV PHP_INI_MEMORY_LIMIT 256M
39-
ENV PHP_INI_UPLOAD_MAX_FILESIZE 2M
40-
ENV PHP_INI_POST_MAX_SIZE 8M
39+
ENV PHP_INI_UPLOAD_MAX_FILESIZE 20M
40+
ENV PHP_INI_POST_MAX_SIZE 22M
4141
ENV PHP_INI_ALLOW_URL_FOPEN 0
4242

4343
RUN sed -i \

0 commit comments

Comments
 (0)