From 9068dfed526f1cfffc554a936c562f1effd1ec6e Mon Sep 17 00:00:00 2001 From: tuxgasy Date: Sat, 15 Apr 2017 10:25:50 +0200 Subject: [PATCH] Add dolibarr 4.0.5 and 5.0.1 --- README.md | 2 +- images/4.0.5/Dockerfile | 43 +++++++++++++++++ images/4.0.5/docker-run.sh | 96 ++++++++++++++++++++++++++++++++++++++ images/5.0.1/Dockerfile | 43 +++++++++++++++++ images/5.0.1/docker-run.sh | 96 ++++++++++++++++++++++++++++++++++++++ update.sh | 2 +- 6 files changed, 280 insertions(+), 2 deletions(-) create mode 100644 images/4.0.5/Dockerfile create mode 100755 images/4.0.5/docker-run.sh create mode 100644 images/5.0.1/Dockerfile create mode 100755 images/5.0.1/docker-run.sh diff --git a/README.md b/README.md index 9634a01..8b80d8a 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ Docker image for Dolibarr with auto installer on first boot. ## Supported tags -* `4.0.0`, `4.0.1`, `4.0.2`, `4.0.3`, `4.0.4`, `5.0.0`, `latest` +* `4.0.0`, `4.0.1`, `4.0.2`, `4.0.3`, `4.0.4`, `4.0.5`, `5.0.0`, `5.0.1`, `latest` ## What is Dolibarr ? diff --git a/images/4.0.5/Dockerfile b/images/4.0.5/Dockerfile new file mode 100644 index 0000000..82c0339 --- /dev/null +++ b/images/4.0.5/Dockerfile @@ -0,0 +1,43 @@ +FROM php:5.6-apache + +MAINTAINER Garcia MICHEL + +ENV DOLI_VERSION 4.0.5 + +ENV DOLI_INSTALL_AUTO 1 + +ENV DOLI_DB_HOST mysql +ENV DOLI_DB_USER doli +ENV DOLI_DB_PASSWORD doli_pass +ENV DOLI_DB_NAME dolidb + +ENV DOLI_ADMIN_LOGIN admin +ENV DOLI_ADMON_PASSWORD admin +ENV DOLI_URL_ROOT 'http://localhost' + +ENV WWW_USER_ID 33 +ENV WWW_GROUP_ID 33 + +ENV PHP_INI_DATE_TIMEZONE 'UTC' + +RUN apt-get update -q && apt-get upgrade -yq \ + && apt-get install -yq \ + libpng12-dev \ + libjpeg-dev \ + php5-mysql \ + libxml2-dev \ + mysql-client \ + unzip \ + && rm -rf /var/lib/apt/lists/* \ + && docker-php-ext-configure gd --with-png-dir=/usr --with-jpeg-dir=/usr \ + && docker-php-ext-install gd mysqli soap + +# Get Dolibarr +ADD https://github.com/Dolibarr/dolibarr/archive/${DOLI_VERSION}.zip /tmp/dolibarr.zip +RUN unzip -q /tmp/dolibarr.zip -d /tmp/dolibarr +RUN cp -r /tmp/dolibarr/dolibarr-${DOLI_VERSION}/htdocs/* /var/www/html/ && rm -rf /tmp/dolibarr + +EXPOSE 80 + +COPY docker-run.sh /usr/local/bin/ +ENTRYPOINT ["docker-run.sh"] diff --git a/images/4.0.5/docker-run.sh b/images/4.0.5/docker-run.sh new file mode 100755 index 0000000..48c52e6 --- /dev/null +++ b/images/4.0.5/docker-run.sh @@ -0,0 +1,96 @@ +#!/bin/bash + +usermod -u $WWW_USER_ID www-data +groupmod -g $WWW_GROUP_ID www-data + +if [ ! -d /var/www/documents ]; then + mkdir /var/www/documents +fi + +chown -R www-data:www-data /var/www + +if [ ! -f /usr/local/etc/php/php.ini ]; then + cat < /usr/local/etc/php/php.ini +date.timezone = $PHP_INI_DATE_TIMEZONE +EOF +fi + +if [ ! -f /var/www/html/conf/conf.php ]; then + cat < /var/www/html/conf/conf.php + /dev/null 2>&1 + r=$? + if [ $r -ne 0 ]; then + echo "Waiting that SQL database is up..." + sleep 2 + fi + done + + mysql -u $DOLI_DB_USER -p${DOLI_DB_PASSWORD} -h $DOLI_DB_HOST $DOLI_DB_NAME -e "SELECT * FROM llx_const" > /dev/null 2>&1 + if [ $? -ne 0 ]; then + + for f in /var/www/html/install/mysql/tables/*.sql; do + if [[ $f != *.key.sql ]]; then + echo "Importing table from `basename $f`..." + sed -i 's/--.*//g;' $f # remove all comment + mysql -u $DOLI_DB_USER -p${DOLI_DB_PASSWORD} -h $DOLI_DB_HOST $DOLI_DB_NAME < $f + fi + done + + for f in /var/www/html/install/mysql/tables/*.key.sql; do + echo "Importing table key from `basename $f`..." + sed -i 's/--.*//g;' $f + mysql -u $DOLI_DB_USER -p${DOLI_DB_PASSWORD} -h $DOLI_DB_HOST $DOLI_DB_NAME < $f > /dev/null 2>&1 + done + + for f in /var/www/html/install/mysql/functions/*.sql; do + echo "Importing `basename $f`..." + sed -i 's/--.*//g;' $f + mysql -u $DOLI_DB_USER -p${DOLI_DB_PASSWORD} -h $DOLI_DB_HOST $DOLI_DB_NAME < $f > /dev/null 2>&1 + done + + for f in /var/www/html/install/mysql/data/*.sql; do + echo "Importing data from `basename $f`..." + sed -i 's/--.*//g;' $f + mysql -u $DOLI_DB_USER -p${DOLI_DB_PASSWORD} -h $DOLI_DB_HOST $DOLI_DB_NAME < $f > /dev/null 2>&1 + done + + echo "Create SuperAdmin account ..." + pass_crypted=`echo -n $DOLI_ADMON_PASSWORD | md5sum | awk '{print $1}'` + mysql -u $DOLI_DB_USER -p${DOLI_DB_PASSWORD} -h $DOLI_DB_HOST $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);" > /dev/null 2>&1 + + echo "Set some default const ..." + mysql -u $DOLI_DB_USER -p${DOLI_DB_PASSWORD} -h $DOLI_DB_HOST $DOLI_DB_NAME -e "DELETE FROM llx_const WHERE name='MAIN_VERSION_LAST_INSTALL';" > /dev/null 2>&1 + mysql -u $DOLI_DB_USER -p${DOLI_DB_PASSWORD} -h $DOLI_DB_HOST $DOLI_DB_NAME -e "DELETE FROM llx_const WHERE name='MAIN_NOT_INSTALLED';" > /dev/null 2>&1 + mysql -u $DOLI_DB_USER -p${DOLI_DB_PASSWORD} -h $DOLI_DB_HOST $DOLI_DB_NAME -e "DELETE FROM llx_const WHERE name='MAIN_LANG_DEFAULT';" > /dev/null 2>&1 + mysql -u $DOLI_DB_USER -p${DOLI_DB_PASSWORD} -h $DOLI_DB_HOST $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);" > /dev/null 2>&1 + mysql -u $DOLI_DB_USER -p${DOLI_DB_PASSWORD} -h $DOLI_DB_HOST $DOLI_DB_NAME -e "INSERT INTO llx_const(name,value,type,visible,note,entity) VALUES ('MAIN_LANG_DEFAULT', 'auto', 'chaine', 0, 'Default language', 1);" > /dev/null 2>&1 + + touch /var/www/documents/install.lock + chown www-data:www-data /var/www/documents/install.lock + chmod 400 /var/www/documents/install.lock + fi +fi + +exec apache2-foreground diff --git a/images/5.0.1/Dockerfile b/images/5.0.1/Dockerfile new file mode 100644 index 0000000..faf81bc --- /dev/null +++ b/images/5.0.1/Dockerfile @@ -0,0 +1,43 @@ +FROM php:5.6-apache + +MAINTAINER Garcia MICHEL + +ENV DOLI_VERSION 5.0.1 + +ENV DOLI_INSTALL_AUTO 1 + +ENV DOLI_DB_HOST mysql +ENV DOLI_DB_USER doli +ENV DOLI_DB_PASSWORD doli_pass +ENV DOLI_DB_NAME dolidb + +ENV DOLI_ADMIN_LOGIN admin +ENV DOLI_ADMON_PASSWORD admin +ENV DOLI_URL_ROOT 'http://localhost' + +ENV WWW_USER_ID 33 +ENV WWW_GROUP_ID 33 + +ENV PHP_INI_DATE_TIMEZONE 'UTC' + +RUN apt-get update -q && apt-get upgrade -yq \ + && apt-get install -yq \ + libpng12-dev \ + libjpeg-dev \ + php5-mysql \ + libxml2-dev \ + mysql-client \ + unzip \ + && rm -rf /var/lib/apt/lists/* \ + && docker-php-ext-configure gd --with-png-dir=/usr --with-jpeg-dir=/usr \ + && docker-php-ext-install gd mysqli soap + +# Get Dolibarr +ADD https://github.com/Dolibarr/dolibarr/archive/${DOLI_VERSION}.zip /tmp/dolibarr.zip +RUN unzip -q /tmp/dolibarr.zip -d /tmp/dolibarr +RUN cp -r /tmp/dolibarr/dolibarr-${DOLI_VERSION}/htdocs/* /var/www/html/ && rm -rf /tmp/dolibarr + +EXPOSE 80 + +COPY docker-run.sh /usr/local/bin/ +ENTRYPOINT ["docker-run.sh"] diff --git a/images/5.0.1/docker-run.sh b/images/5.0.1/docker-run.sh new file mode 100755 index 0000000..48c52e6 --- /dev/null +++ b/images/5.0.1/docker-run.sh @@ -0,0 +1,96 @@ +#!/bin/bash + +usermod -u $WWW_USER_ID www-data +groupmod -g $WWW_GROUP_ID www-data + +if [ ! -d /var/www/documents ]; then + mkdir /var/www/documents +fi + +chown -R www-data:www-data /var/www + +if [ ! -f /usr/local/etc/php/php.ini ]; then + cat < /usr/local/etc/php/php.ini +date.timezone = $PHP_INI_DATE_TIMEZONE +EOF +fi + +if [ ! -f /var/www/html/conf/conf.php ]; then + cat < /var/www/html/conf/conf.php + /dev/null 2>&1 + r=$? + if [ $r -ne 0 ]; then + echo "Waiting that SQL database is up..." + sleep 2 + fi + done + + mysql -u $DOLI_DB_USER -p${DOLI_DB_PASSWORD} -h $DOLI_DB_HOST $DOLI_DB_NAME -e "SELECT * FROM llx_const" > /dev/null 2>&1 + if [ $? -ne 0 ]; then + + for f in /var/www/html/install/mysql/tables/*.sql; do + if [[ $f != *.key.sql ]]; then + echo "Importing table from `basename $f`..." + sed -i 's/--.*//g;' $f # remove all comment + mysql -u $DOLI_DB_USER -p${DOLI_DB_PASSWORD} -h $DOLI_DB_HOST $DOLI_DB_NAME < $f + fi + done + + for f in /var/www/html/install/mysql/tables/*.key.sql; do + echo "Importing table key from `basename $f`..." + sed -i 's/--.*//g;' $f + mysql -u $DOLI_DB_USER -p${DOLI_DB_PASSWORD} -h $DOLI_DB_HOST $DOLI_DB_NAME < $f > /dev/null 2>&1 + done + + for f in /var/www/html/install/mysql/functions/*.sql; do + echo "Importing `basename $f`..." + sed -i 's/--.*//g;' $f + mysql -u $DOLI_DB_USER -p${DOLI_DB_PASSWORD} -h $DOLI_DB_HOST $DOLI_DB_NAME < $f > /dev/null 2>&1 + done + + for f in /var/www/html/install/mysql/data/*.sql; do + echo "Importing data from `basename $f`..." + sed -i 's/--.*//g;' $f + mysql -u $DOLI_DB_USER -p${DOLI_DB_PASSWORD} -h $DOLI_DB_HOST $DOLI_DB_NAME < $f > /dev/null 2>&1 + done + + echo "Create SuperAdmin account ..." + pass_crypted=`echo -n $DOLI_ADMON_PASSWORD | md5sum | awk '{print $1}'` + mysql -u $DOLI_DB_USER -p${DOLI_DB_PASSWORD} -h $DOLI_DB_HOST $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);" > /dev/null 2>&1 + + echo "Set some default const ..." + mysql -u $DOLI_DB_USER -p${DOLI_DB_PASSWORD} -h $DOLI_DB_HOST $DOLI_DB_NAME -e "DELETE FROM llx_const WHERE name='MAIN_VERSION_LAST_INSTALL';" > /dev/null 2>&1 + mysql -u $DOLI_DB_USER -p${DOLI_DB_PASSWORD} -h $DOLI_DB_HOST $DOLI_DB_NAME -e "DELETE FROM llx_const WHERE name='MAIN_NOT_INSTALLED';" > /dev/null 2>&1 + mysql -u $DOLI_DB_USER -p${DOLI_DB_PASSWORD} -h $DOLI_DB_HOST $DOLI_DB_NAME -e "DELETE FROM llx_const WHERE name='MAIN_LANG_DEFAULT';" > /dev/null 2>&1 + mysql -u $DOLI_DB_USER -p${DOLI_DB_PASSWORD} -h $DOLI_DB_HOST $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);" > /dev/null 2>&1 + mysql -u $DOLI_DB_USER -p${DOLI_DB_PASSWORD} -h $DOLI_DB_HOST $DOLI_DB_NAME -e "INSERT INTO llx_const(name,value,type,visible,note,entity) VALUES ('MAIN_LANG_DEFAULT', 'auto', 'chaine', 0, 'Default language', 1);" > /dev/null 2>&1 + + touch /var/www/documents/install.lock + chown www-data:www-data /var/www/documents/install.lock + chmod 400 /var/www/documents/install.lock + fi +fi + +exec apache2-foreground diff --git a/update.sh b/update.sh index 4456e36..8ef4cb9 100755 --- a/update.sh +++ b/update.sh @@ -1,6 +1,6 @@ #!/bin/bash -versions=( "4.0.0" "4.0.1" "4.0.2" "4.0.3" "4.0.4" "5.0.0" ) +versions=( "4.0.0" "4.0.1" "4.0.2" "4.0.3" "4.0.4" "4.0.5" "5.0.0" "5.0.1" ) for version in ${versions[@]}; do echo "Generate Dockerfile for Dolibarr $version"