Uh oh!
There was an error while loading.Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork316
Docker Image for Mautic
mautic/docker-mautic
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Note
This version refers to Docker images and examples for Mautic 5, previous Mautic versions aren't actively supported anymore. If you would like information about older versions, seehttps://github.com/mautic/docker-mautic/tree/mautic4.
Important
You might face several issues when using the FPM images, due to the way those are currently implemented.We strongly advise using Apache instead of FPM for the time being. You might face security issues when using the exemplified nginx.conf. Only proceed with FPM if you are familiar with Nginx configuration!Please refer to#317 for updates on this topic.
For general questions about this Docker image, please visitour forum. We ask that you only openGitHub issues for bug reports or feature requests. This helps ensure you get wider community support and allows others with similar questions to find answers more easily.
To reach the developers directly, you can find us in the #docker channel onMautic's Slack.
All Mautic 5 Docker images follow the following naming stategy.
<major.minor.patch>-<variant>
There are some defaults if parts are omitted:
<minor.patch>
is the latest release patch version in the latest minor version.
Some examples:
5-apache
: latest stable version of Mautic 5 of theapache
variant5.0-fpm
: latest version in the 5.0 minor release in thefpm
variant5.0.3-apache
: specific point release of theapache
variant
Additionally, the taglatest
is available, which will always provide the newest stable Mautic version using theapache
variant of the Docker image.
It's also possible to target a specific build for a given patch:
<major.minor.patch>-<YYYYMMDD>-<variant>
The Docker images exist in 2 variants:
apache
: image based on the officialphp:apache
images.fpm
: image based on the officialphp:fpm
images.
The latest supported Mautic PHP version is used the moment of generating of the image.
Each variant contains:
- the needed dependencies to run Mautic (e.g. PHP modules)
- the Mautic codebase installed via composer (see mautic/recommended-project)
- the needed files and configuration to run as a specific role
See theexamples
explanation below how you could use them.
each image can be started in 3 modes:
mautic_web
: runs the Mautic webinterfacemautic_worker
: runs the worker processes to consume the messenger queuesmautic_cron
: runs the defined cronjobs
This allows you to use different scaling strategies to run the workers or crons, without having to maintain separate images.
Themautic_cron
andmautic_worker
require the codebase anyhow, as they execute console commands that need to bootstrap the full application.
Theexamples folder contains examples ofdocker-compose
setups that use the Docker images.
Warning
The examplesrequiredocker compose
v2.
Running the examples with the unsupporteddocker-compose
v1 will result in a non-starting web container.
Important
Please take into account the purpose of those examples:
it shows how itcould be used, not how itshould be used.
Do not use those examples in production without reviewing, understanding and configuring them.
- basic: standard example using the
apache
image withdoctrine
as async queue. - fpm-nginx: example using the
fpm
image in combination with annginx
withdoctrine
as async queue. - rabbitmq-worker: example using the
apache
image withrabbitmq
as async queue. - custom-plugins: example using a custom build based on
apache
to install non-marketplace plugins on Mautic.
For each example, there are 2 files where settings can be set:
- the
.env
file:Should be used for all general variables for Mysql, PHP, ... - the
.mautic_env
file:Should be used for all Mautic specific variables.
You can build your own images easily using thedocker build
command in the root of this directory:
docker build . -f apache/Dockerfile -t mautic/mautic:5-apachedocker build . -f fpm/Dockerfile -t mautic/mautic:5-fpm
The images by default foresee following volumes to persist data (not taking into account e.g. database or queueing data, as that's not part of these images).
config
: the local config folder containinglocal.php
,parameters_local.php
, ...var/logs
: the folder with logsdocroot/media
: the folder with uploaded and generated media files
The following environment variables can be used to configure how your setup should behave.
Variable | Default | Required | Accepted Values | Description |
---|---|---|---|---|
DEBUG | false | true ,false | Enable verbose logs | |
DOCKER_MAUTIC_ROLE | mautic_web | mautic_cron ,mautic_web , `mautic_worker (string) | Container role | |
DOCKER_MAUTIC_LOAD_TEST_DATA | false | true ,false | Load demo instance | |
DOCKER_MAUTIC_RUN_MIGRATIONS | false | true ,false | Update directory and database structure (please run on major updates) | |
DOCKER_MAUTIC_WORKERS_CONSUME_EMAIL | 2 | integer | Number of workers to start consuming e-mails | |
DOCKER_MAUTIC_WORKERS_CONSUME_HIT | 2 | integer | Number of workers to start consuming hits | |
DOCKER_MAUTIC_WORKERS_CONSUME_FAILED | 2 | integer | Number of workers to start consuming failed e-mails | |
MAUTIC_DB_HOST | none | X | IPv4, IPv6, hostname | MySQL server's IP address or hostname |
MAUTIC_DB_PORT | 3306 | 1 - 65535 (integer) | MySQL server's port | |
MAUTIC_DB_DATABASE | none | X | string | Database which holds Mautic's tables |
MAUTIC_DB_USER | none | X | string | MySQL user for Mautic |
MAUTIC_DB_PASSWORD | none | X | string | MySQL password for Mautic |
Variable | Default |
---|---|
PHP_INI_VALUE_DATE_TIMEZONE | UTC |
PHP_INI_VALUE_MEMORY_LIMIT | 512M |
PHP_INI_VALUE_UPLOAD_MAX_FILESIZE | 512M |
PHP_INI_VALUE_POST_MAX_FILESIZE | 512M |
PHP_INI_VALUE_MAX_EXECUTION_TIME | 300 |
Technically, every setting of Mautic you can set via the UI or via thelocal.php
file can be set as environment variable.
e.g. themessenger_dsn_hit
can be set via theMAUTIC_MESSENGER_DSN_HIT
environment variable.
See the general Mautic documentation for more info.
Currently this image has no easy way to extend Mautic (e.g. adding extracomposer
dependencies or installing extra plugins or themes).
This is an ongoing effort we hope to support in an upcoming 5.x release.
For now, please build your own images based on the official ones to add the needed dependencies, plugins and themes.
You can execute commands directly against theMautic CLI. To do so you have two options:
- Connect to the running container and run the commands.
- Run the commands as
exec
via docker (compose).
Both cases will usedocker compose exec
/docker exec
. Usingdocker compose
uses thedocker-compose.yaml
and the container names listed for ease. More info can be learned aboutexec
commandshere.
Note - Two flags that are used commonly in docker Mautic:
--user www-data
- execute as the
www-data
user, which is the same user as the webserver runs. Running commands as the correct user ensures things function as expected. e.g. file permissions after clearing the cache are correct.
- execute as the
--workdir /var/www/html
- set the working directory to the
/var/www/html
folder, which is the project root of Mautic.
- set the working directory to the
docker composeexec --user www-data --workdir /var/www/html mautic_web /bin/bash
docker composeexec --user www-data --workdir /var/www/html mautic_web php ./bin/console mautic:install https://mautic.example.com --admin_email="admin@mautic.local" --admin_password="Maut1cR0cks\!"
You are invited to contribute new features, fixes, or updates, large or small; we are always thrilled to receive pull requests, and do our best to process them as fast as we can.
Before you start to code, we recommend discussing your plans through aGitHub issue, especially for more ambitious contributions. This gives other contributors a chance to point you in the right direction, give you feedback on your design, and help you find out if someone else is working on the same thing.
Thanks goes to these wonderful people (emoji key):
Renato 💻📖👀 | Mauro Chojrin 💻 | Matt O'Keefe 👀 | Renan William 💻 | Ruth Cheesley 💻 | John Linhart 👀 | Chirag Moradiya 💻 |
Martin Vooremäe 💻👀 | henmohr 👀 | maxitromer 💻 | Nick Vanpraet 👀 | Marko Korhonen 💻 |
This project follows theall-contributors specification. Contributions of any kind welcome!
About
Docker Image for Mautic
Topics
Resources
Code of conduct
Security policy
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Sponsor this project
Uh oh!
There was an error while loading.Please reload this page.
Packages0
Uh oh!
There was an error while loading.Please reload this page.