Files
dolibarr-docker-fork/images/21.0.4-php8.2/Dockerfile
estebanthi 2bc19acbec
Some checks failed
test / check-update (push) Successful in 4s
test / check-build (push) Failing after 5s
Generate images
2025-10-08 19:12:11 +02:00

118 lines
3.6 KiB
Docker

ARG ARCH=
# Use a PHP image
# Example: PHP_BASE_IMAGE=x.y-apache-buster
# Example: PHP_BASE_IMAGE=x.y-apache-bullseye
# Note: Version of the PHP image must be a compatible version according to https://wiki.dolibarr.org/index.php?title=Versions
FROM ${ARCH}php:8.2-apache-bookworm
# Credit/Initial maintainer: Garcia MICHEL <garcia@soamichel.fr>
# Modified according to the GPL license by developers of the Dolibarr community:
# 2024 Alois Micard
# 2024 Laurent Destailleur
# 2025 Renato de Castro Ferreira
LABEL maintainer="The Dolibarr foundation <contact@dolibarr.org>"
ENV DOLI_VERSION=21.0.4
ENV DOLI_VERSION_FOR_INIT_DEMO=21.0
ENV DOLI_INSTALL_AUTO=1
ENV DOLI_PROD=1
ENV DOLI_GIT_BASE_URL=https://gitea.wavyzz.com/Wavyzz/dolibarr-fork
ENV DOLI_ARCHIVE_BASE_DIR=dolibarr-fork
ENV DOLI_DB_TYPE=mysqli
ENV DOLI_DB_HOST=mysql
ENV DOLI_DB_HOST_PORT=3306
ENV DOLI_DB_NAME=dolidb
ENV DOLI_DB_SSL=false
ENV DOLI_URL_ROOT='http://localhost'
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
ENV PHP_INI_UPLOAD_MAX_FILESIZE=20M
ENV PHP_INI_POST_MAX_SIZE=22M
ENV PHP_INI_ALLOW_URL_FOPEN=0
RUN sed -i \
-e 's/^\(ServerSignature On\)$/#\1/g' \
-e 's/^#\(ServerSignature Off\)$/\1/g' \
-e 's/^\(ServerTokens\) OS$/\1 Prod/g' \
/etc/apache2/conf-available/security.conf
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 \
libldap-common \
libpng-dev \
libpq-dev \
libxml2-dev \
libzip-dev \
libtidy-dev \
default-mysql-client \
postgresql-client \
vim-tiny \
cron \
&& apt-get autoremove -y
RUN docker-php-ext-configure gd --with-freetype --with-jpeg \
&& docker-php-ext-install -j$(nproc) calendar intl mysqli pdo_mysql gd soap zip opcache tidy \
&& 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 \
&& sed -i 's/expose_php = On/expose_php = Off/g' ${PHP_INI_DIR}/php.ini \
&& rm -rf /var/lib/apt/lists/*
# Disable useless Apache modules to provide safe defaults
RUN a2disconf serve-cgi-bin \
&& a2dismod status \
&& a2dismod -f alias \
&& a2dismod -f autoindex
# Get Dolibarr
RUN curl -fLSs ${DOLI_GIT_BASE_URL}/archive/${DOLI_VERSION}.tar.gz |\
tar -C /tmp -xz && \
cp -r /tmp/${DOLI_ARCHIVE_BASE_DIR}/htdocs/* /var/www/html/ && \
ln -s /var/www/html /var/www/htdocs && \
cp -r /tmp/${DOLI_ARCHIVE_BASE_DIR}/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 && \
chmod -R u-w /var/www/html
EXPOSE 80
VOLUME /var/www/documents
VOLUME /var/www/html/custom
COPY docker-init.php /var/www/scripts/
COPY docker-run.sh /usr/local/bin/
ENTRYPOINT ["docker-run.sh"]
CMD ["apache2-foreground"]