Project Icon

docker-mautic

Mautic 5的Docker镜像和部署示例

该项目为Mautic 5提供Docker镜像和部署示例。包含Apache和FPM两种镜像变体,支持Web、Worker和Cron三种运行模式。提供基本、FPM-Nginx和RabbitMQ-Worker等配置示例,并说明自定义镜像构建、持久存储配置和设置自定义方法。项目还包括日常任务管理和问题解决指南,旨在简化Mautic的Docker化部署和管理。

Mautic Docker image and examples

[!NOTE] This version refers to Docker images and examples for Mautic 5. If you would like information about older versions, see https://github.com/mautic/docker-mautic/tree/mautic4.

Versions

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 the apache variant
  • 5.0-fpm: latest version in the 5.0 minor release in the fpm variant
  • 5.0.3-apache: specific point release of the apache variant

Variants

The Docker images exist in 2 variants:

  • apache: image based on the official php:apache images.
  • fpm: image based on the official php: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 the examples explanation below how you could use them.

Roles

each image can be started in 3 modes:

  • mautic_web: runs the Mautic webinterface
  • mautic_worker: runs the worker processes to consume the messenger queues
  • mautic_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.
The mautic_cron and mautic_worker require the codebase anyhow, as they execute console commands that need to bootstrap the full application.

Examples

The examples folder contains examples of docker-compose setups that use the Docker images.

[!WARNING] The examples require docker compose v2.
Running the examples with the unsupported docker-compose v1 will result in a non-starting web container.

[!IMPORTANT] Please take into account the purpose of those examples:
it shows how it could be used, not how it should be used.
Do not use those examples in production without reviewing, understanding and configuring them.

  • basic: standard example using the apache image with doctrine as async queue.
  • fpm-nginx: example using the fpm image in combination with an nginx with doctrine as async queue.
  • rabbitmq-worker: example using the apache image with rabbitmq as async queue.

Building your own images

You can build your own images easily using the docker build command in the root of this directory:

docker build . -f apache/Dockerfile -t mautic/mautic:5-apache
docker build . -f fpm/Dockerfile -t mautic/mautic:5-fpm

Persistent storage

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 containing local.php, parameters_local.php, ...
  • var/logs: the folder with logs
  • docroot/media: the folder with uploaded and generated media files

Configuration and customizing

Configuration

The following environment variables can be used to configure how your setup should behave. There are 2 files where those 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.

Those variables can also be set via the environment key on services defined in the docker-compose.yml file.

MySQL settings

  • MYSQL_HOST: the MySQL host to connect to
  • MYSQL_PORT: the MySQL port to use
  • MYSQL_DATABASE: the database name to be used by Mautic
  • MYSQL_USER: the MySQL user that has access to the database
  • MYSQL_PASSWORD: the password for the MySQL user
  • MYSQL_ROOT_PASSWORD: the password for the MySQL root user that is able to configure the above users and database

PHP settings

  • PHP_INI_VALUE_DATE_TIMEZONE: defaults to UTC
  • PHP_INI_VALUE_MEMORY_LIMIT: defaults to 512M
  • PHP_INI_VALUE_UPLOAD_MAX_FILESIZE: defaults to 512M
  • PHP_INI_VALUE_POST_MAX_FILESIZE: defaults to 512M
  • PHP_INI_VALUE_MAX_EXECUTION_TIME: defaults to 300

Mautic behaviour settings

  • DOCKER_MAUTIC_ROLE: which role does the container has to perform.
    Defaults to mautic_web, other supported values are mautic_worker and mautic_cron.
  • DOCKER_MAUTIC_LOAD_TEST_DATA: should the test data be loaded on start or not.
    Defaults to false, other supported value is true.
    This variable is only usable when using the web role.
  • DOCKER_MAUTIC_RUN_MIGRATIONS: should the Doctrine migrations be executed on start.
    Defaults to false, other supported value is true.
    This variable is only usable when using the web role.
  • DOCKER_MAUTIC_WORKERS_CONSUME_EMAIL: Number of workers to start consuming mails.
    Defaults to 2
  • DOCKER_MAUTIC_WORKERS_CONSUME_HIT: Number of workers to start consuming hits.
    Defaults to 2
  • DOCKER_MAUTIC_WORKERS_CONSUME_FAILED: Number of workers to start consuming failed e-mails.
    Defaults to 2

Mautic settings

Technically, every setting of Mautic you can set via the UI or via the local.php file can be set as environment variable.

e.g. the messenger_dsn_hit can be set via the MAUTIC_MESSENGER_DSN_HIT environment variable.
See the general Mautic documentation for more info.

Customization

Currently this image has no easy way to extend Mautic (e.g. adding extra composer 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.

Day to day tasks

Running console commands with Docker Compose

if you want to execute commands, you can make use of docker compose exec.

A full list of options for the command is available on the help pages.
The most important flags used in the examples below are:

  • -u www-data: execute as the www-data user, which is the same user as the webserver runs. This ensures that e.g. file permissions after clearing the cache are correct.
  • -w /var/www/html: set the working directory to the /var/www/html folder, which is the project root of Mautic.

Examples

  • Open a shell in the running mautic_web container:

    docker compose exec -u www-data -w /var/www/html mautic_web /bin/bash
    
  • execute a command in the running mautic_web container and return the output directly

    docker compose exec -u www-data -w /var/www/html mautic_web php ./bin/console
    

Issues

If you have any problems with or questions about this image, please contact us through a GitHub issue.

You can also reach the Mautic community through its online forums or the Mautic Slack channel.

Contributing

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 a GitHub 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.

项目侧边栏1项目侧边栏2
推荐项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

白日梦AI

白日梦AI提供专注于AI视频生成的多样化功能,包括文生视频、动态画面和形象生成等,帮助用户快速上手,创造专业级内容。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

讯飞绘镜

讯飞绘镜是一个支持从创意到完整视频创作的智能平台,用户可以快速生成视频素材并创作独特的音乐视频和故事。平台提供多样化的主题和精选作品,帮助用户探索创意灵感。

Project Cover

讯飞文书

讯飞文书依托讯飞星火大模型,为文书写作者提供从素材筹备到稿件撰写及审稿的全程支持。通过录音智记和以稿写稿等功能,满足事务性工作的高频需求,帮助撰稿人节省精力,提高效率,优化工作与生活。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

AIWritePaper论文写作

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号