diff --git a/.gitignore b/.gitignore index 3444d79..90367f6 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,3 @@ +.idea/ +.volumes/ docker-compose-links/ diff --git a/Dockerfile.template b/Dockerfile.template index 25e12cf..dda965d 100644 --- a/Dockerfile.template +++ b/Dockerfile.template @@ -4,6 +4,7 @@ FROM ${ARCH}php:%PHP_BASE_IMAGE% LABEL maintainer="Garcia MICHEL " +ENV DOLI_VERSION %DOLI_VERSION% ENV DOLI_INSTALL_AUTO 1 ENV DOLI_DB_TYPE mysqli @@ -50,7 +51,7 @@ RUN apt-get update -y \ postgresql-client \ cron \ && apt-get autoremove -y \ - && docker-php-ext-configure gd %GD_CONFIG_ARG% \ + && docker-php-ext-configure gd --with-freetype --with-jpeg \ && docker-php-ext-install -j$(nproc) calendar intl mysqli pdo_mysql gd soap zip \ && docker-php-ext-configure pgsql -with-pgsql \ && docker-php-ext-install pdo_pgsql pgsql \ @@ -58,9 +59,8 @@ RUN apt-get update -y \ && docker-php-ext-install -j$(nproc) ldap \ && docker-php-ext-configure imap --with-kerberos --with-imap-ssl \ && docker-php-ext-install imap \ - && mv ${PHP_INI_DIR}/php.ini-production ${PHP_INI_DIR}/php.ini - -ENV DOLI_VERSION %DOLI_VERSION% + && mv ${PHP_INI_DIR}/php.ini-production ${PHP_INI_DIR}/php.ini \ + && rm -rf /var/lib/apt/lists/* # Get Dolibarr RUN curl -fLSs https://github.com/Dolibarr/dolibarr/archive/${DOLI_VERSION}.tar.gz |\ @@ -73,8 +73,6 @@ RUN curl -fLSs https://github.com/Dolibarr/dolibarr/archive/${DOLI_VERSION}.tar. mkdir -p /var/www/html/custom && \ chown -R www-data:www-data /var/www -RUN rm -rf /var/lib/apt/lists/* - EXPOSE 80 VOLUME /var/www/documents VOLUME /var/www/html/custom diff --git a/README.md b/README.md index 96f83c8..9b543a6 100644 --- a/README.md +++ b/README.md @@ -4,19 +4,17 @@ Docker image for Dolibarr with auto installer on first boot. ## Supported tags -* 9.0.4-php7.3 9.0.4 9 -* 10.0.7-php7.3 10.0.7 10 * 11.0.5-php7.4 11.0.5 11 * 12.0.5-php7.4 12.0.5 12 * 13.0.4-php7.4 13.0.4 13 * 14.0.5-php7.4 14.0.5 14 * 15.0.3-php7.4 15.0.3 15 -* 16.0.0-php7.4 16.0.0 16 latest +* 16.0.1-php8.1 16.0.1 16 latest * develop -**End of support for PHP < 7.3** +**End of support for PHP < 7.4** -**Dolibarr versions 7, 8 no more updated** +**Dolibarr versions 7, 8, 9, 10 no more updated** ## Supported architectures diff --git a/README.template b/README.template index ca22b83..2eae5d4 100644 --- a/README.template +++ b/README.template @@ -5,9 +5,9 @@ Docker image for Dolibarr with auto installer on first boot. ## Supported tags %TAGS% -**End of support for PHP < 7.3** +**End of support for PHP < 7.4** -**Dolibarr versions 7, 8 no more updated** +**Dolibarr versions 7, 8, 9, 10 no more updated** ## Supported architectures diff --git a/images/10.0.7-php7.3/Dockerfile b/images/10.0.7-php7.3/Dockerfile deleted file mode 100644 index 94d8ab4..0000000 --- a/images/10.0.7-php7.3/Dockerfile +++ /dev/null @@ -1,85 +0,0 @@ -ARG ARCH= - -FROM ${ARCH}php:7.3-apache-buster - -LABEL maintainer="Garcia MICHEL " - -ENV DOLI_INSTALL_AUTO 1 - -ENV DOLI_DB_TYPE mysqli -ENV DOLI_DB_HOST mysql -ENV DOLI_DB_HOST_PORT 3306 -ENV DOLI_DB_NAME dolidb - -ENV DOLI_URL_ROOT 'http://localhost' -ENV DOLI_NOCSRFCHECK 0 - -ENV DOLI_AUTH dolibarr -ENV DOLI_LDAP_HOST 127.0.0.1 -ENV DOLI_LDAP_PORT 389 -ENV DOLI_LDAP_VERSION 3 -ENV DOLI_LDAP_SERVER_TYPE openldap -ENV DOLI_LDAP_LOGIN_ATTRIBUTE uid -ENV DOLI_LDAP_DN 'ou=users,dc=my-domain,dc=com' -ENV DOLI_LDAP_FILTER '' -ENV DOLI_LDAP_BIND_DN '' -ENV DOLI_LDAP_BIND_PASS '' -ENV DOLI_LDAP_DEBUG false - -ENV DOLI_CRON 0 - -ENV WWW_USER_ID 33 -ENV WWW_GROUP_ID 33 - -ENV PHP_INI_DATE_TIMEZONE 'UTC' -ENV PHP_INI_MEMORY_LIMIT 256M - -RUN apt-get update -y \ - && apt-get dist-upgrade -y \ - && apt-get install -y --no-install-recommends \ - libc-client-dev \ - libfreetype6-dev \ - libjpeg62-turbo-dev \ - libkrb5-dev \ - libldap2-dev \ - libpng-dev \ - libpq-dev \ - libxml2-dev \ - libzip-dev \ - default-mysql-client \ - postgresql-client \ - cron \ - && apt-get autoremove -y \ - && docker-php-ext-configure gd --with-png-dir=/usr --with-jpeg-dir=/usr \ - && docker-php-ext-install -j$(nproc) calendar intl mysqli pdo_mysql gd soap zip \ - && docker-php-ext-configure pgsql -with-pgsql \ - && docker-php-ext-install pdo_pgsql pgsql \ - && docker-php-ext-configure ldap --with-libdir=lib/$(gcc -dumpmachine)/ \ - && docker-php-ext-install -j$(nproc) ldap \ - && docker-php-ext-configure imap --with-kerberos --with-imap-ssl \ - && docker-php-ext-install imap \ - && mv ${PHP_INI_DIR}/php.ini-production ${PHP_INI_DIR}/php.ini - -ENV DOLI_VERSION 10.0.7 - -# Get Dolibarr -RUN curl -fLSs https://github.com/Dolibarr/dolibarr/archive/${DOLI_VERSION}.tar.gz |\ - tar -C /tmp -xz && \ - cp -r /tmp/dolibarr-${DOLI_VERSION}/htdocs/* /var/www/html/ && \ - ln -s /var/www/html /var/www/htdocs && \ - cp -r /tmp/dolibarr-${DOLI_VERSION}/scripts /var/www/ && \ - rm -rf /tmp/* && \ - mkdir -p /var/www/documents && \ - mkdir -p /var/www/html/custom && \ - chown -R www-data:www-data /var/www - -RUN rm -rf /var/lib/apt/lists/* - -EXPOSE 80 -VOLUME /var/www/documents -VOLUME /var/www/html/custom - -COPY docker-run.sh /usr/local/bin/ -ENTRYPOINT ["docker-run.sh"] - -CMD ["apache2-foreground"] diff --git a/images/11.0.5-php7.4/Dockerfile b/images/11.0.5-php7.4/Dockerfile index e1dbe68..cefe395 100644 --- a/images/11.0.5-php7.4/Dockerfile +++ b/images/11.0.5-php7.4/Dockerfile @@ -4,6 +4,7 @@ FROM ${ARCH}php:7.4-apache-buster LABEL maintainer="Garcia MICHEL " +ENV DOLI_VERSION 11.0.5 ENV DOLI_INSTALL_AUTO 1 ENV DOLI_DB_TYPE mysqli @@ -58,9 +59,8 @@ RUN apt-get update -y \ && docker-php-ext-install -j$(nproc) ldap \ && docker-php-ext-configure imap --with-kerberos --with-imap-ssl \ && docker-php-ext-install imap \ - && mv ${PHP_INI_DIR}/php.ini-production ${PHP_INI_DIR}/php.ini - -ENV DOLI_VERSION 11.0.5 + && mv ${PHP_INI_DIR}/php.ini-production ${PHP_INI_DIR}/php.ini \ + && rm -rf /var/lib/apt/lists/* # Get Dolibarr RUN curl -fLSs https://github.com/Dolibarr/dolibarr/archive/${DOLI_VERSION}.tar.gz |\ @@ -73,8 +73,6 @@ RUN curl -fLSs https://github.com/Dolibarr/dolibarr/archive/${DOLI_VERSION}.tar. mkdir -p /var/www/html/custom && \ chown -R www-data:www-data /var/www -RUN rm -rf /var/lib/apt/lists/* - EXPOSE 80 VOLUME /var/www/documents VOLUME /var/www/html/custom diff --git a/images/12.0.5-php7.4/Dockerfile b/images/12.0.5-php7.4/Dockerfile index f5ce4df..7abb300 100644 --- a/images/12.0.5-php7.4/Dockerfile +++ b/images/12.0.5-php7.4/Dockerfile @@ -4,6 +4,7 @@ FROM ${ARCH}php:7.4-apache-buster LABEL maintainer="Garcia MICHEL " +ENV DOLI_VERSION 12.0.5 ENV DOLI_INSTALL_AUTO 1 ENV DOLI_DB_TYPE mysqli @@ -58,9 +59,8 @@ RUN apt-get update -y \ && docker-php-ext-install -j$(nproc) ldap \ && docker-php-ext-configure imap --with-kerberos --with-imap-ssl \ && docker-php-ext-install imap \ - && mv ${PHP_INI_DIR}/php.ini-production ${PHP_INI_DIR}/php.ini - -ENV DOLI_VERSION 12.0.5 + && mv ${PHP_INI_DIR}/php.ini-production ${PHP_INI_DIR}/php.ini \ + && rm -rf /var/lib/apt/lists/* # Get Dolibarr RUN curl -fLSs https://github.com/Dolibarr/dolibarr/archive/${DOLI_VERSION}.tar.gz |\ @@ -73,8 +73,6 @@ RUN curl -fLSs https://github.com/Dolibarr/dolibarr/archive/${DOLI_VERSION}.tar. mkdir -p /var/www/html/custom && \ chown -R www-data:www-data /var/www -RUN rm -rf /var/lib/apt/lists/* - EXPOSE 80 VOLUME /var/www/documents VOLUME /var/www/html/custom diff --git a/images/13.0.4-php7.4/Dockerfile b/images/13.0.4-php7.4/Dockerfile index 1d53fdc..98a87c2 100644 --- a/images/13.0.4-php7.4/Dockerfile +++ b/images/13.0.4-php7.4/Dockerfile @@ -4,6 +4,7 @@ FROM ${ARCH}php:7.4-apache-buster LABEL maintainer="Garcia MICHEL " +ENV DOLI_VERSION 13.0.4 ENV DOLI_INSTALL_AUTO 1 ENV DOLI_DB_TYPE mysqli @@ -58,9 +59,8 @@ RUN apt-get update -y \ && docker-php-ext-install -j$(nproc) ldap \ && docker-php-ext-configure imap --with-kerberos --with-imap-ssl \ && docker-php-ext-install imap \ - && mv ${PHP_INI_DIR}/php.ini-production ${PHP_INI_DIR}/php.ini - -ENV DOLI_VERSION 13.0.4 + && mv ${PHP_INI_DIR}/php.ini-production ${PHP_INI_DIR}/php.ini \ + && rm -rf /var/lib/apt/lists/* # Get Dolibarr RUN curl -fLSs https://github.com/Dolibarr/dolibarr/archive/${DOLI_VERSION}.tar.gz |\ @@ -73,8 +73,6 @@ RUN curl -fLSs https://github.com/Dolibarr/dolibarr/archive/${DOLI_VERSION}.tar. mkdir -p /var/www/html/custom && \ chown -R www-data:www-data /var/www -RUN rm -rf /var/lib/apt/lists/* - EXPOSE 80 VOLUME /var/www/documents VOLUME /var/www/html/custom diff --git a/images/14.0.5-php7.4/Dockerfile b/images/14.0.5-php7.4/Dockerfile index c3c068a..83ca823 100644 --- a/images/14.0.5-php7.4/Dockerfile +++ b/images/14.0.5-php7.4/Dockerfile @@ -4,6 +4,7 @@ FROM ${ARCH}php:7.4-apache-buster LABEL maintainer="Garcia MICHEL " +ENV DOLI_VERSION 14.0.5 ENV DOLI_INSTALL_AUTO 1 ENV DOLI_DB_TYPE mysqli @@ -58,9 +59,8 @@ RUN apt-get update -y \ && docker-php-ext-install -j$(nproc) ldap \ && docker-php-ext-configure imap --with-kerberos --with-imap-ssl \ && docker-php-ext-install imap \ - && mv ${PHP_INI_DIR}/php.ini-production ${PHP_INI_DIR}/php.ini - -ENV DOLI_VERSION 14.0.5 + && mv ${PHP_INI_DIR}/php.ini-production ${PHP_INI_DIR}/php.ini \ + && rm -rf /var/lib/apt/lists/* # Get Dolibarr RUN curl -fLSs https://github.com/Dolibarr/dolibarr/archive/${DOLI_VERSION}.tar.gz |\ @@ -73,8 +73,6 @@ RUN curl -fLSs https://github.com/Dolibarr/dolibarr/archive/${DOLI_VERSION}.tar. mkdir -p /var/www/html/custom && \ chown -R www-data:www-data /var/www -RUN rm -rf /var/lib/apt/lists/* - EXPOSE 80 VOLUME /var/www/documents VOLUME /var/www/html/custom diff --git a/images/15.0.3-php7.4/Dockerfile b/images/15.0.3-php7.4/Dockerfile index c76c497..8fea033 100644 --- a/images/15.0.3-php7.4/Dockerfile +++ b/images/15.0.3-php7.4/Dockerfile @@ -4,6 +4,7 @@ FROM ${ARCH}php:7.4-apache-buster LABEL maintainer="Garcia MICHEL " +ENV DOLI_VERSION 15.0.3 ENV DOLI_INSTALL_AUTO 1 ENV DOLI_DB_TYPE mysqli @@ -58,9 +59,8 @@ RUN apt-get update -y \ && docker-php-ext-install -j$(nproc) ldap \ && docker-php-ext-configure imap --with-kerberos --with-imap-ssl \ && docker-php-ext-install imap \ - && mv ${PHP_INI_DIR}/php.ini-production ${PHP_INI_DIR}/php.ini - -ENV DOLI_VERSION 15.0.3 + && mv ${PHP_INI_DIR}/php.ini-production ${PHP_INI_DIR}/php.ini \ + && rm -rf /var/lib/apt/lists/* # Get Dolibarr RUN curl -fLSs https://github.com/Dolibarr/dolibarr/archive/${DOLI_VERSION}.tar.gz |\ @@ -73,8 +73,6 @@ RUN curl -fLSs https://github.com/Dolibarr/dolibarr/archive/${DOLI_VERSION}.tar. mkdir -p /var/www/html/custom && \ chown -R www-data:www-data /var/www -RUN rm -rf /var/lib/apt/lists/* - EXPOSE 80 VOLUME /var/www/documents VOLUME /var/www/html/custom diff --git a/images/16.0.0-php7.4/docker-run.sh b/images/16.0.0-php7.4/docker-run.sh deleted file mode 100755 index 0993392..0000000 --- a/images/16.0.0-php7.4/docker-run.sh +++ /dev/null @@ -1,245 +0,0 @@ -#!/bin/bash - -# usage: get_env_value VAR [DEFAULT] -# ie: get_env_value 'XYZ_DB_PASSWORD' 'example' -# (will allow for "$XYZ_DB_PASSWORD_FILE" to fill in the value of -# "$XYZ_DB_PASSWORD" from a file, especially for Docker's secrets feature) -function get_env_value() { - local varName="${1}" - local fileVarName="${varName}_FILE" - local defaultValue="${2:-}" - - if [ "${!varName:-}" ] && [ "${!fileVarName:-}" ]; then - echo >&2 "error: both ${varName} and ${fileVarName} are set (but are exclusive)" - exit 1 - fi - - local value="${defaultValue}" - if [ "${!varName:-}" ]; then - value="${!varName}" - elif [ "${!fileVarName:-}" ]; then - value="$(< "${!fileVarName}")" - fi - - echo ${value} - exit 0 -} - -function initDolibarr() -{ - local CURRENT_UID=$(id -u www-data) - local CURRENT_GID=$(id -g www-data) - usermod -u ${WWW_USER_ID} www-data - groupmod -g ${WWW_GROUP_ID} www-data - - if [[ ! -d /var/www/documents ]]; then - echo "[INIT] => create volume directory /var/www/documents ..." - mkdir -p /var/www/documents - fi - - echo "[INIT] => update PHP Config ..." - cat > ${PHP_INI_DIR}/conf.d/dolibarr-php.ini << EOF -date.timezone = ${PHP_INI_DATE_TIMEZONE} -sendmail_path = /usr/sbin/sendmail -t -i -memory_limit = ${PHP_INI_MEMORY_LIMIT} -EOF - -if [[ ! -f /var/www/html/conf/conf.php ]]; then - echo "[INIT] => update Dolibarr Config ..." - cat > /var/www/html/conf/conf.php << EOF - update Dolibarr Config with LDAP entries ..." - cat >> /var/www/html/conf/conf.php << EOF -\$dolibarr_main_auth_ldap_host='${DOLI_LDAP_HOST}'; -\$dolibarr_main_auth_ldap_port='${DOLI_LDAP_PORT}'; -\$dolibarr_main_auth_ldap_version='${DOLI_LDAP_VERSION}'; -\$dolibarr_main_auth_ldap_servertype='${DOLI_LDAP_SERVER_TYPE}'; -\$dolibarr_main_auth_ldap_login_attribute='${DOLI_LDAP_LOGIN_ATTRIBUTE}'; -\$dolibarr_main_auth_ldap_dn='${DOLI_LDAP_DN}'; -\$dolibarr_main_auth_ldap_filter='${DOLI_LDAP_FILTER}'; -\$dolibarr_main_auth_ldap_admin_login='${DOLI_LDAP_BIND_DN}'; -\$dolibarr_main_auth_ldap_admin_pass='${DOLI_LDAP_BIND_PASS}'; -\$dolibarr_main_auth_ldap_debug='${DOLI_LDAP_DEBUG}'; -EOF - fi - fi - - echo "[INIT] => update ownership for file in Dolibarr Config ..." - chown www-data:www-data /var/www/html/conf/conf.php - if [[ ${DOLI_DB_TYPE} == "pgsql" && ! -f /var/www/documents/install.lock ]]; then - chmod 600 /var/www/html/conf/conf.php - else - chmod 400 /var/www/html/conf/conf.php - fi - - if [[ ${CURRENT_UID} -ne ${WWW_USER_ID} || ${CURRENT_GID} -ne ${WWW_GROUP_ID} ]]; then - # Refresh file ownership cause it has changed - echo "[INIT] => As UID / GID have changed from default, update ownership for files in /var/ww ..." - chown -R www-data:www-data /var/www - else - # Reducing load on init : change ownership only for volumes declared in docker - echo "[INIT] => update ownership for files in /var/www/documents ..." - chown -R www-data:www-data /var/www/documents - fi -} - -function waitForDataBase() -{ - r=1 - - while [[ ${r} -ne 0 ]]; do - mysql -u ${DOLI_DB_USER} --protocol tcp -p${DOLI_DB_PASSWORD} -h ${DOLI_DB_HOST} -P ${DOLI_DB_HOST_PORT} --connect-timeout=5 -e "status" > /dev/null 2>&1 - r=$? - if [[ ${r} -ne 0 ]]; then - echo "Waiting that SQL database is up ..." - sleep 2 - fi - done -} - -function lockInstallation() -{ - touch /var/www/documents/install.lock - chown www-data:www-data /var/www/documents/install.lock - chmod 400 /var/www/documents/install.lock -} - -function initializeDatabase() -{ - for fileSQL in /var/www/html/install/mysql/tables/*.sql; do - if [[ ${fileSQL} != *.key.sql ]]; then - echo "Importing table from `basename ${fileSQL}` ..." - sed -i 's/--.*//g;' ${fileSQL} # remove all comment - mysql -u ${DOLI_DB_USER} -p${DOLI_DB_PASSWORD} -h ${DOLI_DB_HOST} -P ${DOLI_DB_HOST_PORT} ${DOLI_DB_NAME} < ${fileSQL} - fi - done - - for fileSQL in /var/www/html/install/mysql/tables/*.key.sql; do - echo "Importing table key from `basename ${fileSQL}` ..." - sed -i 's/--.*//g;' ${fileSQL} - mysql -u ${DOLI_DB_USER} -p${DOLI_DB_PASSWORD} -h ${DOLI_DB_HOST} -P ${DOLI_DB_HOST_PORT} ${DOLI_DB_NAME} < ${fileSQL} > /dev/null 2>&1 - done - - for fileSQL in /var/www/html/install/mysql/functions/*.sql; do - echo "Importing `basename ${fileSQL}` ..." - sed -i 's/--.*//g;' ${fileSQL} - mysql -u ${DOLI_DB_USER} -p${DOLI_DB_PASSWORD} -h ${DOLI_DB_HOST} -P ${DOLI_DB_HOST_PORT} ${DOLI_DB_NAME} < ${fileSQL} > /dev/null 2>&1 - done - - for fileSQL in /var/www/html/install/mysql/data/*.sql; do - echo "Importing data from `basename ${fileSQL}` ..." - sed -i 's/--.*//g;' ${fileSQL} - mysql -u ${DOLI_DB_USER} -p${DOLI_DB_PASSWORD} -h ${DOLI_DB_HOST} -P ${DOLI_DB_HOST_PORT} ${DOLI_DB_NAME} < ${fileSQL} > /dev/null 2>&1 - done - - echo "Create SuperAdmin account ..." - pass_crypted=`echo -n ${DOLI_ADMIN_PASSWORD} | md5sum | awk '{print $1}'` - 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);" > /dev/null 2>&1 - - echo "Set some default const ..." - 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';" > /dev/null 2>&1 - 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';" > /dev/null 2>&1 - 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';" > /dev/null 2>&1 - 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);" > /dev/null 2>&1 - 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);" > /dev/null 2>&1 - 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);" > /dev/null 2>&1 -} - -function migrateDatabase() -{ - TARGET_VERSION="$(echo ${DOLI_VERSION} | cut -d. -f1).$(echo ${DOLI_VERSION} | cut -d. -f2).0" - echo "Schema update is required ..." - echo "Dumping Database into /var/www/documents/dump.sql ..." - - mysqldump -u ${DOLI_DB_USER} -p${DOLI_DB_PASSWORD} -h ${DOLI_DB_HOST} -P ${DOLI_DB_HOST_PORT} ${DOLI_DB_NAME} > /var/www/documents/dump.sql - r=${?} - if [[ ${r} -ne 0 ]]; then - echo "Dump failed ... Aborting migration ..." - return ${r} - fi - echo "Dump done ... Starting Migration ..." - - echo "" > /var/www/documents/migration_error.html - pushd /var/www/htdocs/install > /dev/null - php upgrade.php ${INSTALLED_VERSION} ${TARGET_VERSION} >> /var/www/documents/migration_error.html 2>&1 && \ - php upgrade2.php ${INSTALLED_VERSION} ${TARGET_VERSION} >> /var/www/documents/migration_error.html 2>&1 && \ - php step5.php ${INSTALLED_VERSION} ${TARGET_VERSION} >> /var/www/documents/migration_error.html 2>&1 - r=$? - popd > /dev/null - - if [[ ${r} -ne 0 ]]; then - echo "Migration failed ... Restoring DB ... check file /var/www/documents/migration_error.html for more info on error ..." - mysql -u ${DOLI_DB_USER} -p${DOLI_DB_PASSWORD} -h ${DOLI_DB_HOST} -P ${DOLI_DB_HOST_PORT} ${DOLI_DB_NAME} < /var/www/documents/dump.sql - echo "DB Restored ..." - return ${r} - else - echo "Migration successful ... Enjoy !!" - fi - - return 0 -} - -function run() -{ - initDolibarr - echo "Current Version is : ${DOLI_VERSION}" - - if [[ ${DOLI_INSTALL_AUTO} -eq 1 && ${DOLI_CRON} -ne 1 && ! -f /var/www/documents/install.lock && ${DOLI_DB_TYPE} != "pgsql" ]]; then - waitForDataBase - - 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/lastinstall.result 2>&1 - r=$? - if [[ ${r} -ne 0 ]]; then - initializeDatabase - else - INSTALLED_VERSION=`grep -v LAST_INSTALLED_VERSION /tmp/lastinstall.result` - echo "Last installed Version is : ${INSTALLED_VERSION}" - if [[ "$(echo ${INSTALLED_VERSION} | cut -d. -f1)" -lt "$(echo ${DOLI_VERSION} | cut -d. -f1)" ]]; then - migrateDatabase - else - echo "Schema update is not required ... Enjoy !!" - fi - fi - - if [[ ${DOLI_VERSION} != "develop" ]]; then - lockInstallation - fi - fi -} - -DOLI_DB_USER=$(get_env_value 'DOLI_DB_USER' 'doli') -DOLI_DB_PASSWORD=$(get_env_value 'DOLI_DB_PASSWORD' 'doli_pass') -DOLI_ADMIN_LOGIN=$(get_env_value 'DOLI_ADMIN_LOGIN' 'admin') -DOLI_ADMIN_PASSWORD=$(get_env_value 'DOLI_ADMIN_PASSWORD' 'admin') - -run - -set -e - -if [[ ${DOLI_CRON} -eq 1 ]]; then - echo "PATH=\$PATH:/usr/local/bin" > /etc/cron.d/dolibarr - echo "*/5 * * * * www-data /var/www/scripts/cron/cron_run_jobs.php ${DOLI_CRON_KEY} ${DOLI_CRON_USER} > /var/www/documents/cron_run_jobs.php.log 2>&1" >> /etc/cron.d/dolibarr - cron -f - exit 0 -fi - -if [ "${1#-}" != "$1" ]; then - set -- apache2-foreground "$@" -fi - -exec "$@" diff --git a/images/16.0.0-php7.4/Dockerfile b/images/16.0.1-php8.1/Dockerfile similarity index 95% rename from images/16.0.0-php7.4/Dockerfile rename to images/16.0.1-php8.1/Dockerfile index fe14287..5b3a567 100644 --- a/images/16.0.0-php7.4/Dockerfile +++ b/images/16.0.1-php8.1/Dockerfile @@ -1,9 +1,10 @@ ARG ARCH= -FROM ${ARCH}php:7.4-apache-buster +FROM ${ARCH}php:8.1-apache-buster LABEL maintainer="Garcia MICHEL " +ENV DOLI_VERSION 16.0.1 ENV DOLI_INSTALL_AUTO 1 ENV DOLI_DB_TYPE mysqli @@ -58,9 +59,8 @@ RUN apt-get update -y \ && docker-php-ext-install -j$(nproc) ldap \ && docker-php-ext-configure imap --with-kerberos --with-imap-ssl \ && docker-php-ext-install imap \ - && mv ${PHP_INI_DIR}/php.ini-production ${PHP_INI_DIR}/php.ini - -ENV DOLI_VERSION 16.0.0 + && mv ${PHP_INI_DIR}/php.ini-production ${PHP_INI_DIR}/php.ini \ + && rm -rf /var/lib/apt/lists/* # Get Dolibarr RUN curl -fLSs https://github.com/Dolibarr/dolibarr/archive/${DOLI_VERSION}.tar.gz |\ @@ -73,8 +73,6 @@ RUN curl -fLSs https://github.com/Dolibarr/dolibarr/archive/${DOLI_VERSION}.tar. mkdir -p /var/www/html/custom && \ chown -R www-data:www-data /var/www -RUN rm -rf /var/lib/apt/lists/* - EXPOSE 80 VOLUME /var/www/documents VOLUME /var/www/html/custom diff --git a/images/10.0.7-php7.3/docker-run.sh b/images/16.0.1-php8.1/docker-run.sh similarity index 100% rename from images/10.0.7-php7.3/docker-run.sh rename to images/16.0.1-php8.1/docker-run.sh diff --git a/images/9.0.4-php7.3/Dockerfile b/images/9.0.4-php7.3/Dockerfile deleted file mode 100644 index a5990a9..0000000 --- a/images/9.0.4-php7.3/Dockerfile +++ /dev/null @@ -1,85 +0,0 @@ -ARG ARCH= - -FROM ${ARCH}php:7.3-apache-buster - -LABEL maintainer="Garcia MICHEL " - -ENV DOLI_INSTALL_AUTO 1 - -ENV DOLI_DB_TYPE mysqli -ENV DOLI_DB_HOST mysql -ENV DOLI_DB_HOST_PORT 3306 -ENV DOLI_DB_NAME dolidb - -ENV DOLI_URL_ROOT 'http://localhost' -ENV DOLI_NOCSRFCHECK 0 - -ENV DOLI_AUTH dolibarr -ENV DOLI_LDAP_HOST 127.0.0.1 -ENV DOLI_LDAP_PORT 389 -ENV DOLI_LDAP_VERSION 3 -ENV DOLI_LDAP_SERVER_TYPE openldap -ENV DOLI_LDAP_LOGIN_ATTRIBUTE uid -ENV DOLI_LDAP_DN 'ou=users,dc=my-domain,dc=com' -ENV DOLI_LDAP_FILTER '' -ENV DOLI_LDAP_BIND_DN '' -ENV DOLI_LDAP_BIND_PASS '' -ENV DOLI_LDAP_DEBUG false - -ENV DOLI_CRON 0 - -ENV WWW_USER_ID 33 -ENV WWW_GROUP_ID 33 - -ENV PHP_INI_DATE_TIMEZONE 'UTC' -ENV PHP_INI_MEMORY_LIMIT 256M - -RUN apt-get update -y \ - && apt-get dist-upgrade -y \ - && apt-get install -y --no-install-recommends \ - libc-client-dev \ - libfreetype6-dev \ - libjpeg62-turbo-dev \ - libkrb5-dev \ - libldap2-dev \ - libpng-dev \ - libpq-dev \ - libxml2-dev \ - libzip-dev \ - default-mysql-client \ - postgresql-client \ - cron \ - && apt-get autoremove -y \ - && docker-php-ext-configure gd --with-png-dir=/usr --with-jpeg-dir=/usr \ - && docker-php-ext-install -j$(nproc) calendar intl mysqli pdo_mysql gd soap zip \ - && docker-php-ext-configure pgsql -with-pgsql \ - && docker-php-ext-install pdo_pgsql pgsql \ - && docker-php-ext-configure ldap --with-libdir=lib/$(gcc -dumpmachine)/ \ - && docker-php-ext-install -j$(nproc) ldap \ - && docker-php-ext-configure imap --with-kerberos --with-imap-ssl \ - && docker-php-ext-install imap \ - && mv ${PHP_INI_DIR}/php.ini-production ${PHP_INI_DIR}/php.ini - -ENV DOLI_VERSION 9.0.4 - -# Get Dolibarr -RUN curl -fLSs https://github.com/Dolibarr/dolibarr/archive/${DOLI_VERSION}.tar.gz |\ - tar -C /tmp -xz && \ - cp -r /tmp/dolibarr-${DOLI_VERSION}/htdocs/* /var/www/html/ && \ - ln -s /var/www/html /var/www/htdocs && \ - cp -r /tmp/dolibarr-${DOLI_VERSION}/scripts /var/www/ && \ - rm -rf /tmp/* && \ - mkdir -p /var/www/documents && \ - mkdir -p /var/www/html/custom && \ - chown -R www-data:www-data /var/www - -RUN rm -rf /var/lib/apt/lists/* - -EXPOSE 80 -VOLUME /var/www/documents -VOLUME /var/www/html/custom - -COPY docker-run.sh /usr/local/bin/ -ENTRYPOINT ["docker-run.sh"] - -CMD ["apache2-foreground"] diff --git a/images/9.0.4-php7.3/docker-run.sh b/images/9.0.4-php7.3/docker-run.sh deleted file mode 100755 index 7546aaa..0000000 --- a/images/9.0.4-php7.3/docker-run.sh +++ /dev/null @@ -1,245 +0,0 @@ -#!/bin/bash - -# usage: get_env_value VAR [DEFAULT] -# ie: get_env_value 'XYZ_DB_PASSWORD' 'example' -# (will allow for "$XYZ_DB_PASSWORD_FILE" to fill in the value of -# "$XYZ_DB_PASSWORD" from a file, especially for Docker's secrets feature) -function get_env_value() { - local varName="${1}" - local fileVarName="${varName}_FILE" - local defaultValue="${2:-}" - - if [ "${!varName:-}" ] && [ "${!fileVarName:-}" ]; then - echo >&2 "error: both ${varName} and ${fileVarName} are set (but are exclusive)" - exit 1 - fi - - local value="${defaultValue}" - if [ "${!varName:-}" ]; then - value="${!varName}" - elif [ "${!fileVarName:-}" ]; then - value="$(< "${!fileVarName}")" - fi - - echo ${value} - exit 0 -} - -function initDolibarr() -{ - local CURRENT_UID=$(id -u www-data) - local CURRENT_GID=$(id -g www-data) - usermod -u ${WWW_USER_ID} www-data - groupmod -g ${WWW_GROUP_ID} www-data - - if [[ ! -d /var/www/documents ]]; then - echo "[INIT] => create volume directory /var/www/documents ..." - mkdir -p /var/www/documents - fi - - echo "[INIT] => update PHP Config ..." - cat > ${PHP_INI_DIR}/conf.d/dolibarr-php.ini << EOF -date.timezone = ${PHP_INI_DATE_TIMEZONE} -sendmail_path = /usr/sbin/sendmail -t -i -memory_limit = ${PHP_INI_MEMORY_LIMIT} -EOF - -if [[ ! -f /var/www/html/conf/conf.php ]]; then - echo "[INIT] => update Dolibarr Config ..." - cat > /var/www/html/conf/conf.php << EOF - update Dolibarr Config with LDAP entries ..." - cat >> /var/www/html/conf/conf.php << EOF -\$dolibarr_main_auth_ldap_host='${DOLI_LDAP_HOST}'; -\$dolibarr_main_auth_ldap_port='${DOLI_LDAP_PORT}'; -\$dolibarr_main_auth_ldap_version='${DOLI_LDAP_VERSION}'; -\$dolibarr_main_auth_ldap_servertype='${DOLI_LDAP_SERVER_TYPE}'; -\$dolibarr_main_auth_ldap_login_attribute='${DOLI_LDAP_LOGIN_ATTRIBUTE}'; -\$dolibarr_main_auth_ldap_dn='${DOLI_LDAP_DN}'; -\$dolibarr_main_auth_ldap_filter='${DOLI_LDAP_FILTER}'; -\$dolibarr_main_auth_ldap_admin_login='${DOLI_LDAP_BIND_DN}'; -\$dolibarr_main_auth_ldap_admin_pass='${DOLI_LDAP_BIND_PASS}'; -\$dolibarr_main_auth_ldap_debug='${DOLI_LDAP_DEBUG}'; -EOF - fi - fi - - echo "[INIT] => update ownership for file in Dolibarr Config ..." - chown www-data:www-data /var/www/html/conf/conf.php - if [[ ${DOLI_DB_TYPE} == "pgsql" && ! -f /var/www/documents/install.lock ]]; then - chmod 600 /var/www/html/conf/conf.php - else - chmod 400 /var/www/html/conf/conf.php - fi - - if [[ ${CURRENT_UID} -ne ${WWW_USER_ID} || ${CURRENT_GID} -ne ${WWW_GROUP_ID} ]]; then - # Refresh file ownership cause it has changed - echo "[INIT] => As UID / GID have changed from default, update ownership for files in /var/ww ..." - chown -R www-data:www-data /var/www - else - # Reducing load on init : change ownership only for volumes declared in docker - echo "[INIT] => update ownership for files in /var/www/documents ..." - chown -R www-data:www-data /var/www/documents - fi -} - -function waitForDataBase() -{ - r=1 - - while [[ ${r} -ne 0 ]]; do - mysql -u ${DOLI_DB_USER} --protocol tcp -p${DOLI_DB_PASSWORD} -h ${DOLI_DB_HOST} -P ${DOLI_DB_HOST_PORT} --connect-timeout=5 -e "status" > /dev/null 2>&1 - r=$? - if [[ ${r} -ne 0 ]]; then - echo "Waiting that SQL database is up ..." - sleep 2 - fi - done -} - -function lockInstallation() -{ - touch /var/www/documents/install.lock - chown www-data:www-data /var/www/documents/install.lock - chmod 400 /var/www/documents/install.lock -} - -function initializeDatabase() -{ - for fileSQL in /var/www/html/install/mysql/tables/*.sql; do - if [[ ${fileSQL} != *.key.sql ]]; then - echo "Importing table from `basename ${fileSQL}` ..." - sed -i 's/--.*//g;' ${fileSQL} # remove all comment - mysql -u ${DOLI_DB_USER} -p${DOLI_DB_PASSWORD} -h ${DOLI_DB_HOST} -P ${DOLI_DB_HOST_PORT} ${DOLI_DB_NAME} < ${fileSQL} - fi - done - - for fileSQL in /var/www/html/install/mysql/tables/*.key.sql; do - echo "Importing table key from `basename ${fileSQL}` ..." - sed -i 's/--.*//g;' ${fileSQL} - mysql -u ${DOLI_DB_USER} -p${DOLI_DB_PASSWORD} -h ${DOLI_DB_HOST} -P ${DOLI_DB_HOST_PORT} ${DOLI_DB_NAME} < ${fileSQL} > /dev/null 2>&1 - done - - for fileSQL in /var/www/html/install/mysql/functions/*.sql; do - echo "Importing `basename ${fileSQL}` ..." - sed -i 's/--.*//g;' ${fileSQL} - mysql -u ${DOLI_DB_USER} -p${DOLI_DB_PASSWORD} -h ${DOLI_DB_HOST} -P ${DOLI_DB_HOST_PORT} ${DOLI_DB_NAME} < ${fileSQL} > /dev/null 2>&1 - done - - for fileSQL in /var/www/html/install/mysql/data/*.sql; do - echo "Importing data from `basename ${fileSQL}` ..." - sed -i 's/--.*//g;' ${fileSQL} - mysql -u ${DOLI_DB_USER} -p${DOLI_DB_PASSWORD} -h ${DOLI_DB_HOST} -P ${DOLI_DB_HOST_PORT} ${DOLI_DB_NAME} < ${fileSQL} > /dev/null 2>&1 - done - - echo "Create SuperAdmin account ..." - pass_crypted=`echo -n ${DOLI_ADMIN_PASSWORD} | md5sum | awk '{print $1}'` - 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);" > /dev/null 2>&1 - - echo "Set some default const ..." - 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';" > /dev/null 2>&1 - 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';" > /dev/null 2>&1 - 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';" > /dev/null 2>&1 - 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);" > /dev/null 2>&1 - 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);" > /dev/null 2>&1 - 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);" > /dev/null 2>&1 -} - -function migrateDatabase() -{ - TARGET_VERSION="$(echo ${DOLI_VERSION} | cut -d. -f1).$(echo ${DOLI_VERSION} | cut -d. -f2).0" - echo "Schema update is required ..." - echo "Dumping Database into /var/www/documents/dump.sql ..." - - mysqldump -u ${DOLI_DB_USER} -p${DOLI_DB_PASSWORD} -h ${DOLI_DB_HOST} -P ${DOLI_DB_HOST_PORT} ${DOLI_DB_NAME} > /var/www/documents/dump.sql - r=${?} - if [[ ${r} -ne 0 ]]; then - echo "Dump failed ... Aborting migration ..." - return ${r} - fi - echo "Dump done ... Starting Migration ..." - - echo "" > /var/www/documents/migration_error.html - pushd /var/www/htdocs/install > /dev/null - php upgrade.php ${INSTALLED_VERSION} ${TARGET_VERSION} >> /var/www/documents/migration_error.html 2>&1 && \ - php upgrade2.php ${INSTALLED_VERSION} ${TARGET_VERSION} >> /var/www/documents/migration_error.html 2>&1 && \ - php step5.php ${INSTALLED_VERSION} ${TARGET_VERSION} >> /var/www/documents/migration_error.html 2>&1 - r=$? - popd > /dev/null - - if [[ ${r} -ne 0 ]]; then - echo "Migration failed ... Restoring DB ... check file /var/www/documents/migration_error.html for more info on error ..." - mysql -u ${DOLI_DB_USER} -p${DOLI_DB_PASSWORD} -h ${DOLI_DB_HOST} -P ${DOLI_DB_HOST_PORT} ${DOLI_DB_NAME} < /var/www/documents/dump.sql - echo "DB Restored ..." - return ${r} - else - echo "Migration successful ... Enjoy !!" - fi - - return 0 -} - -function run() -{ - initDolibarr - echo "Current Version is : ${DOLI_VERSION}" - - if [[ ${DOLI_INSTALL_AUTO} -eq 1 && ${DOLI_CRON} -ne 1 && ! -f /var/www/documents/install.lock && ${DOLI_DB_TYPE} != "pgsql" ]]; then - waitForDataBase - - 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/lastinstall.result 2>&1 - r=$? - if [[ ${r} -ne 0 ]]; then - initializeDatabase - else - INSTALLED_VERSION=`grep -v LAST_INSTALLED_VERSION /tmp/lastinstall.result` - echo "Last installed Version is : ${INSTALLED_VERSION}" - if [[ "$(echo ${INSTALLED_VERSION} | cut -d. -f1)" -lt "$(echo ${DOLI_VERSION} | cut -d. -f1)" ]]; then - migrateDatabase - else - echo "Schema update is not required ... Enjoy !!" - fi - fi - - if [[ ${DOLI_VERSION} != "develop" ]]; then - lockInstallation - fi - fi -} - -DOLI_DB_USER=$(get_env_value 'DOLI_DB_USER' 'doli') -DOLI_DB_PASSWORD=$(get_env_value 'DOLI_DB_PASSWORD' 'doli_pass') -DOLI_ADMIN_LOGIN=$(get_env_value 'DOLI_ADMIN_LOGIN' 'admin') -DOLI_ADMIN_PASSWORD=$(get_env_value 'DOLI_ADMIN_PASSWORD' 'admin') - -run - -set -e - -if [[ ${DOLI_CRON} -eq 1 ]]; then - echo "PATH=\$PATH:/usr/local/bin" > /etc/cron.d/dolibarr - echo "*/5 * * * * root /bin/su www-data -s /bin/sh -c '/var/www/scripts/cron/cron_run_jobs.php ${DOLI_CRON_KEY} ${DOLI_CRON_USER}' > /proc/1/fd/1 2> /proc/1/fd/2" >> /etc/cron.d/dolibarr - cron -f - exit 0 -fi - -if [ "${1#-}" != "$1" ]; then - set -- apache2-foreground "$@" -fi - -exec "$@" diff --git a/images/develop/Dockerfile b/images/develop/Dockerfile index b79cce6..cd7f3e3 100644 --- a/images/develop/Dockerfile +++ b/images/develop/Dockerfile @@ -1,9 +1,10 @@ ARG ARCH= -FROM ${ARCH}php:7.4-apache-buster +FROM ${ARCH}php:8.1-apache-buster LABEL maintainer="Garcia MICHEL " +ENV DOLI_VERSION develop ENV DOLI_INSTALL_AUTO 1 ENV DOLI_DB_TYPE mysqli @@ -58,9 +59,8 @@ RUN apt-get update -y \ && docker-php-ext-install -j$(nproc) ldap \ && docker-php-ext-configure imap --with-kerberos --with-imap-ssl \ && docker-php-ext-install imap \ - && mv ${PHP_INI_DIR}/php.ini-production ${PHP_INI_DIR}/php.ini - -ENV DOLI_VERSION develop + && mv ${PHP_INI_DIR}/php.ini-production ${PHP_INI_DIR}/php.ini \ + && rm -rf /var/lib/apt/lists/* # Get Dolibarr RUN curl -fLSs https://github.com/Dolibarr/dolibarr/archive/${DOLI_VERSION}.tar.gz |\ @@ -73,8 +73,6 @@ RUN curl -fLSs https://github.com/Dolibarr/dolibarr/archive/${DOLI_VERSION}.tar. mkdir -p /var/www/html/custom && \ chown -R www-data:www-data /var/www -RUN rm -rf /var/lib/apt/lists/* - EXPOSE 80 VOLUME /var/www/documents VOLUME /var/www/html/custom diff --git a/update.sh b/update.sh index 282e844..7ac7414 100755 --- a/update.sh +++ b/update.sh @@ -27,14 +27,8 @@ for dolibarrVersion in "${DOLIBARR_VERSIONS[@]}"; do # Mapping version according https://wiki.dolibarr.org/index.php/Versions # Regarding PHP Supported version : https://www.php.net/supported-versions.php - if [ "${dolibarrMajor}" = "9" ]; then - php_base_images=( "7.3-apache-buster" ) - elif [ "${dolibarrMajor}" = "10" ]; then - php_base_images=( "7.3-apache-buster" ) - elif [ "${dolibarrMajor}" = "11" ]; then - php_base_images=( "7.4-apache-buster" ) - elif [ "${dolibarrMajor}" = "12" ]; then - php_base_images=( "7.4-apache-buster" ) + if [ "${dolibarrMajor}" = "16" ] || [ "${dolibarrVersion}" = "develop" ]; then + php_base_images=( "8.1-apache-buster" ) else php_base_images=( "7.4-apache-buster" ) fi @@ -59,16 +53,9 @@ for dolibarrVersion in "${DOLIBARR_VERSIONS[@]}"; do dir="${BASE_DIR}/images/${currentTag}" - if [ "${php_version}" = "7.4" ]; then - gd_config_args="\-\-with\-freetype\ \-\-with\-jpeg" - else - gd_config_args="\-\-with\-png\-dir=\/usr\ \-\-with-jpeg-dir=\/usr" - fi - mkdir -p "${dir}" sed 's/%PHP_BASE_IMAGE%/'"${php_base_image}"'/;' "${BASE_DIR}/Dockerfile.template" | \ - sed 's/%DOLI_VERSION%/'"${dolibarrVersion}"'/;' | \ - sed 's/%GD_CONFIG_ARG%/'"${gd_config_args}"'/;' \ + sed 's/%DOLI_VERSION%/'"${dolibarrVersion}"'/;' \ > "${dir}/Dockerfile" cp "${BASE_DIR}/docker-run.sh" "${dir}/docker-run.sh" diff --git a/versions.sh b/versions.sh index 55b8d2e..a2ceaa4 100644 --- a/versions.sh +++ b/versions.sh @@ -2,5 +2,5 @@ set -e -DOLIBARR_VERSIONS=( "9.0.4" "10.0.7" "11.0.5" "12.0.5" "13.0.4" "14.0.5" "15.0.3" "16.0.0" "develop" ) -DOLIBARR_LATEST_TAG="16.0.0" +DOLIBARR_VERSIONS=( "11.0.5" "12.0.5" "13.0.4" "14.0.5" "15.0.3" "16.0.1" "develop" ) +DOLIBARR_LATEST_TAG="16.0.1"