Skip to content

Instantly share code, notes, and snippets.

@petebytes
Created December 19, 2020 11:04
Show Gist options
  • Save petebytes/eb84d374d72fdd0086164426f94c9e23 to your computer and use it in GitHub Desktop.
Save petebytes/eb84d374d72fdd0086164426f94c9e23 to your computer and use it in GitHub Desktop.
Mautic v3
version: '2'
services:
mauticdb:
image: percona/percona-server:5.7
container_name: mauticdb
volumes:
- mysql_data:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=yourpassword
command:
--character-set-server=utf8mb4 --collation-server=utf8mb4_general_ci
networks:
- mautic-net
mautic:
image: mautic/mautic:v3
container_name: mautic
links:
- mauticdb:mysql
depends_on:
- mauticdb
ports:
- 8080:80
volumes:
- mautic_data:/var/www/html
environment:
- MAUTIC_DB_HOST=mauticdb
- MYSQL_PORT_3306_TCP=3306
- MAUTIC_DB_USER=root
- MAUTIC_DB_PASSWORD=yourpassword
- MAUTIC_DB_NAME=mautic
- MAUTIC_RUN_CRON_JOBS=true
networks:
- mautic-net
volumes:
mysql_data:
driver: local
mautic_data:
driver: local
networks:
mautic-net:
driver: bridge
FROM php:7.3-apache
LABEL vendor="Mautic"
LABEL maintainer="Luiz Eduardo Oliveira Fonseca <luiz@powertic.com>"
# Install PHP extensions
RUN apt-get update && apt-get install --no-install-recommends -y \
ca-certificates \
build-essential \
software-properties-common \
cron \
git \
htop \
wget \
dos2unix \
curl \
libcurl4-gnutls-dev \
sudo \
libc-client-dev \
libkrb5-dev \
libmcrypt-dev \
libssl-dev \
libxml2-dev \
libzip-dev \
libjpeg-dev \
libmagickwand-dev \
libpng-dev \
libgif-dev \
libtiff-dev \
libz-dev \
libpq-dev \
imagemagick \
graphicsmagick \
libwebp-dev \
libjpeg62-turbo-dev \
libxpm-dev \
libaprutil1-dev \
libicu-dev \
libfreetype6-dev \
unzip \
nano \
zip \
mariadb-client \
&& apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \
&& rm -rf /var/lib/apt/lists/* \
&& rm /etc/cron.daily/*
RUN docker-php-ext-configure imap --with-kerberos --with-imap-ssl && \
docker-php-ext-install imap && \
docker-php-ext-enable imap
RUN docker-php-ext-configure gd --with-freetype-dir=/usr/lib --with-png-dir=/usr/lib --with-jpeg-dir=/usr/lib \
&& docker-php-ext-install gd \
&& docker-php-ext-configure opcache --enable-opcache \
&& docker-php-ext-install intl mbstring mysqli curl pdo_mysql zip opcache bcmath gd \
&& docker-php-ext-enable intl mbstring mysqli curl pdo_mysql zip opcache bcmath gd
# Install composer
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/bin --filename=composer
# Define Mautic volume to persist data
VOLUME /var/www/html
# Define Mautic version and expected SHA1 signature
ENV MAUTIC_VERSION 3.0.2
ENV MAUTIC_SHA1 225dec8fbac05dfb77fdd7ed292a444797db215f
# By default enable cron jobs
ENV MAUTIC_RUN_CRON_JOBS true
# Setting an Default database user for Mysql
ENV MAUTIC_DB_USER root
# Setting an Default database name for Mysql
ENV MAUTIC_DB_NAME mautic
# Setting PHP properties
ENV PHP_INI_DATE_TIMEZONE='UTC' \
PHP_MEMORY_LIMIT=512M \
PHP_MAX_UPLOAD=512M \
PHP_MAX_EXECUTION_TIME=300
# Download package and extract to web volume
RUN curl -o mautic.zip -SL https://github.com/mautic/mautic/releases/download/${MAUTIC_VERSION}/${MAUTIC_VERSION}.zip \
&& echo "$MAUTIC_SHA1 *mautic.zip" | sha1sum -c - \
&& mkdir /usr/src/mautic \
&& unzip mautic.zip -d /usr/src/mautic \
&& rm mautic.zip \
&& chown -R www-data:www-data /usr/src/mautic
# Copy init scripts and custom .htaccess
COPY docker-entrypoint.sh /entrypoint.sh
COPY makeconfig.php /makeconfig.php
COPY makedb.php /makedb.php
COPY mautic.crontab /etc/cron.d/mautic
RUN chmod 644 /etc/cron.d/mautic
# Enable Apache Rewrite Module
RUN a2enmod rewrite
# Apply necessary permissions
RUN ["chmod", "+x", "/entrypoint.sh"]
ENTRYPOINT ["/entrypoint.sh"]
CMD ["apache2-foreground"]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment