Files
sugar-crm/Dockerfile
root 30905b15d4
Some checks failed
Docker Build & Push / build-and-push (push) Has been cancelled
feat: SuiteCRM Docker + compose + CI/CD
2026-05-24 14:12:23 +02:00

97 lines
2.8 KiB
Docker

# SuiteCRM 7.15.1 - PHP 8.1 + Apache
FROM php:8.1-apache
LABEL maintainer="Kevin Gessner"
LABEL description="SuiteCRM 7.15.1 containerized with PHP 8.1 and Apache"
# Install system dependencies and PHP extensions
RUN set -eux; \
apt-get update && apt-get install -y --no-install-recommends \
# Core
libzip-dev \
libpng-dev \
libjpeg-dev \
libfreetype6-dev \
libonig-dev \
libxml2-dev \
libldap2-dev \
libc-client-dev \
libkrb5-dev \
libcurl4-openssl-dev \
libicu-dev \
# Utils
unzip \
wget \
curl \
cron \
msmtp \
# Cleanup
&& docker-php-ext-configure gd --with-freetype --with-jpeg \
&& docker-php-ext-configure imap --with-kerberos --with-imap-ssl \
&& docker-php-ext-install -j$(nproc) \
pdo \
pdo_mysql \
mysqli \
gd \
mbstring \
zip \
xml \
curl \
ldap \
imap \
intl \
calendar \
opcache \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*
# Configure PHP for SuiteCRM
RUN { \
echo 'memory_limit = 512M'; \
echo 'upload_max_filesize = 64M'; \
echo 'post_max_size = 64M'; \
echo 'max_execution_time = 600'; \
echo 'max_input_time = 600'; \
echo 'display_errors = Off'; \
echo 'log_errors = On'; \
echo 'date.timezone = Europe/Berlin'; \
} > /usr/local/etc/php/conf.d/suitecrm.ini
# Configure OPcache
RUN { \
echo 'opcache.memory_consumption=256'; \
echo 'opcache.interned_strings_buffer=16'; \
echo 'opcache.max_accelerated_files=20000'; \
echo 'opcache.revalidate_freq=2'; \
echo 'opcache.fast_shutdown=1'; \
} > /usr/local/etc/php/conf.d/opcache-recommended.ini
# SuiteCRM version
ENV SUITECRM_VERSION=7.15.1
ENV SUITECRM_SHA256=468b811addd21dfb29d411ee6e815dbdf7099f912347e88cd3e8d010d829db7a
# Download and extract SuiteCRM
RUN set -eux; \
wget -q "https://github.com/salesagility/SuiteCRM/releases/download/v${SUITECRM_VERSION}/SuiteCRM-${SUITECRM_VERSION}.zip" \
-O /tmp/suitecrm.zip; \
echo "${SUITECRM_SHA256} /tmp/suitecrm.zip" | sha256sum -c -; \
unzip -q /tmp/suitecrm.zip -d /var/www/html/; \
rm /tmp/suitecrm.zip; \
chown -R www-data:www-data /var/www/html
# Apache configuration
RUN a2enmod rewrite expires headers
COPY apache-suitecrm.conf /etc/apache2/sites-available/000-default.conf
COPY docker-entrypoint.sh /usr/local/bin/
RUN chmod +x /usr/local/bin/docker-entrypoint.sh
WORKDIR /var/www/html
VOLUME ["/var/www/html/upload", "/var/www/html/custom", "/var/www/html/config_override.php"]
EXPOSE 80
ENTRYPOINT ["docker-entrypoint.sh"]
CMD ["apache2-foreground"]