|
| 1 | +ARG ARCH= |
| 2 | + |
| 3 | +# Use a PHP image |
| 4 | +# Example: PHP_BASE_IMAGE=x.y-apache-buster |
| 5 | +# Example: PHP_BASE_IMAGE=x.y-apache-bullseye |
| 6 | +# Note: Version of the PHP image must be a compatible version according to https://wiki.dolibarr.org/index.php?title=Versions |
| 7 | +FROM ${ARCH}php:8.2-apache-bullseye |
| 8 | + |
| 9 | +# Credit/Initial maintainer: Garcia MICHEL <[email protected]> |
| 10 | +# Modified according to the GPL license by developers of the Dolibarr community: |
| 11 | +# 2024 Alois Micard |
| 12 | +# 2024 Laurent Destailleur |
| 13 | +# 2025 Renato de Castro Ferreira |
| 14 | +LABEL maintainer= "The Dolibarr foundation <[email protected]>" |
| 15 | + |
| 16 | +ENV DOLI_VERSION=22.0.0 |
| 17 | +ENV DOLI_VERSION_FOR_INIT_DEMO=22.0 |
| 18 | +ENV DOLI_INSTALL_AUTO=1 |
| 19 | +ENV DOLI_PROD=1 |
| 20 | + |
| 21 | +ENV DOLI_DB_TYPE=mysqli |
| 22 | +ENV DOLI_DB_HOST=mysql |
| 23 | +ENV DOLI_DB_HOST_PORT=3306 |
| 24 | +ENV DOLI_DB_NAME=dolidb |
| 25 | +ENV DOLI_DB_SSL=false |
| 26 | + |
| 27 | +ENV DOLI_URL_ROOT='http://localhost' |
| 28 | + |
| 29 | +ENV DOLI_AUTH=dolibarr |
| 30 | +ENV DOLI_LDAP_HOST=127.0.0.1 |
| 31 | +ENV DOLI_LDAP_PORT=389 |
| 32 | +ENV DOLI_LDAP_VERSION=3 |
| 33 | +ENV DOLI_LDAP_SERVER_TYPE=openldap |
| 34 | +ENV DOLI_LDAP_LOGIN_ATTRIBUTE=uid |
| 35 | +ENV DOLI_LDAP_DN='ou=users,dc=my-domain,dc=com' |
| 36 | +ENV DOLI_LDAP_FILTER='' |
| 37 | +ENV DOLI_LDAP_BIND_DN='' |
| 38 | +ENV DOLI_LDAP_BIND_PASS='' |
| 39 | +ENV DOLI_LDAP_DEBUG=false |
| 40 | + |
| 41 | +ENV DOLI_CRON=0 |
| 42 | + |
| 43 | +ENV WWW_USER_ID=33 |
| 44 | +ENV WWW_GROUP_ID=33 |
| 45 | + |
| 46 | +ENV PHP_INI_DATE_TIMEZONE='UTC' |
| 47 | +ENV PHP_INI_MEMORY_LIMIT=256M |
| 48 | +ENV PHP_INI_UPLOAD_MAX_FILESIZE=20M |
| 49 | +ENV PHP_INI_POST_MAX_SIZE=22M |
| 50 | +ENV PHP_INI_ALLOW_URL_FOPEN=0 |
| 51 | + |
| 52 | +RUN sed -i \ |
| 53 | + -e 's/^\(ServerSignature On\)$/#\1/g' \ |
| 54 | + -e 's/^#\(ServerSignature Off\)$/\1/g' \ |
| 55 | + -e 's/^\(ServerTokens\) OS$/\1 Prod/g' \ |
| 56 | + /etc/apache2/conf-available/security.conf |
| 57 | + |
| 58 | +RUN apt-get update -y \ |
| 59 | + && apt-get dist-upgrade -y \ |
| 60 | + && apt-get install -y --no-install-recommends \ |
| 61 | + libc-client-dev \ |
| 62 | + libfreetype6-dev \ |
| 63 | + libjpeg62-turbo-dev \ |
| 64 | + libkrb5-dev \ |
| 65 | + libldap2-dev \ |
| 66 | + libldap-common \ |
| 67 | + libpng-dev \ |
| 68 | + libpq-dev \ |
| 69 | + libxml2-dev \ |
| 70 | + libzip-dev \ |
| 71 | + libtidy-dev \ |
| 72 | + default-mysql-client \ |
| 73 | + postgresql-client \ |
| 74 | + vim-tiny \ |
| 75 | + cron \ |
| 76 | + && apt-get autoremove -y |
| 77 | +RUN docker-php-ext-configure gd --with-freetype --with-jpeg \ |
| 78 | + && docker-php-ext-install -j$(nproc) calendar intl mysqli pdo_mysql gd soap zip opcache tidy \ |
| 79 | + && docker-php-ext-configure pgsql -with-pgsql \ |
| 80 | + && docker-php-ext-install pdo_pgsql pgsql \ |
| 81 | + && docker-php-ext-configure ldap --with-libdir=lib/$(gcc -dumpmachine)/ \ |
| 82 | + && docker-php-ext-install -j$(nproc) ldap \ |
| 83 | + && docker-php-ext-configure imap --with-kerberos --with-imap-ssl \ |
| 84 | + && docker-php-ext-install imap \ |
| 85 | + && mv ${PHP_INI_DIR}/php.ini-production ${PHP_INI_DIR}/php.ini \ |
| 86 | + && sed -i 's/expose_php = On/expose_php = Off/g' ${PHP_INI_DIR}/php.ini \ |
| 87 | + && rm -rf /var/lib/apt/lists/* |
| 88 | + |
| 89 | +# Disable useless Apache modules to provide safe defaults |
| 90 | +RUN a2disconf serve-cgi-bin \ |
| 91 | + && a2dismod status \ |
| 92 | + && a2dismod -f alias \ |
| 93 | + && a2dismod -f autoindex |
| 94 | + |
| 95 | +# Get Dolibarr |
| 96 | +RUN curl -fLSs https://github.com/Dolibarr/dolibarr/archive/${DOLI_VERSION}.tar.gz |\ |
| 97 | + tar -C /tmp -xz && \ |
| 98 | + cp -r /tmp/dolibarr-${DOLI_VERSION}/htdocs/* /var/www/html/ && \ |
| 99 | + ln -s /var/www/html /var/www/htdocs && \ |
| 100 | + cp -r /tmp/dolibarr-${DOLI_VERSION}/scripts /var/www/ && \ |
| 101 | + rm -rf /tmp/* && \ |
| 102 | + mkdir -p /var/www/documents && \ |
| 103 | + mkdir -p /var/www/html/custom && \ |
| 104 | + chown -R www-data:www-data /var/www && \ |
| 105 | + chmod -R u-w /var/www/html |
| 106 | + |
| 107 | +EXPOSE 80 |
| 108 | +VOLUME /var/www/documents |
| 109 | +VOLUME /var/www/html/custom |
| 110 | + |
| 111 | +COPY docker-init.php /var/www/scripts/ |
| 112 | +COPY docker-run.sh /usr/local/bin/ |
| 113 | +ENTRYPOINT ["docker-run.sh"] |
| 114 | + |
| 115 | +CMD ["apache2-foreground"] |
0 commit comments