From 1b8365d5595ee33b445e3d3ad93456cde6bf3cae Mon Sep 17 00:00:00 2001 From: Juan Felipe Date: Thu, 19 Sep 2024 12:07:00 -0300 Subject: [PATCH] fix code review reported issues - fix typo on healthcheck conditions - fix db connections - improve some default values - add plugins and update persistance --- templates/compose/mautic5.yaml | 124 ++++++++++++++++++--------------- 1 file changed, 69 insertions(+), 55 deletions(-) diff --git a/templates/compose/mautic5.yaml b/templates/compose/mautic5.yaml index 309a619d2..4cf7eef54 100644 --- a/templates/compose/mautic5.yaml +++ b/templates/compose/mautic5.yaml @@ -9,103 +9,117 @@ services: image: 'mysql:8.0' environment: - 'MYSQL_ROOT_PASSWORD=${SERVICE_PASSWORD_64_MYSQLROOT}' - - 'MYSQL_DATABASE=${MYSQL_DATABASE}' - - 'MYSQL_USER=${MYSQL_USER}' + - 'MYSQL_DATABASE=${MYSQL_DATABASE:-mautic}' + - 'MYSQL_USER=${SERVICE_USER_MYSQL}' - 'MYSQL_PASSWORD=${SERVICE_PASSWORD_64_MYSQL}' volumes: - 'mysql-data:/var/lib/mysql' healthcheck: - test: 'mysqladmin --user=$$MYSQL_USER --password=$$SERVICE_PASSWORD_64_MYSQL ping' - start_period: 5s - interval: 5s + test: 'mysqladmin ping --silent --user=$$SERVICE_USER_MYSQL --password=$$SERVICE_PASSWORD_64_MYSQL' + start_period: 30s + interval: 10s timeout: 5s - retries: 10 + retries: 5 rabbitmq: image: 'rabbitmq:3' environment: - - 'RABBITMQ_DEFAULT_VHOST=${RABBITMQ_DEFAULT_VHOST}' + - 'RABBITMQ_DEFAULT_VHOST=${RABBITMQ_DEFAULT_VHOST:-mautic}' volumes: - 'rabbitmq-data:/var/lib/rabbitmq' mautic_web: image: 'mautic/mautic:latest' ports: - - 8880:80 + - '8880:80' volumes: - - './mautic/config:/var/www/html/config:z' - - './mautic/logs:/var/www/html/var/logs:z' - - './mautic/media/files:/var/www/html/docroot/media/files:z' - - './mautic/media/images:/var/www/html/docroot/media/images:z' - - './cron:/opt/mautic/cron:z' + - 'mautic_data/config:/var/www/html/config:z' + - 'mautic_data/logs:/var/www/html/var/logs:z' + - 'mautic_data/media/files:/var/www/html/docroot/media/files:z' + - 'mautic_data/media/images:/var/www/html/docroot/media/images:z' + - 'mautic_data/plugins:/var/www/html/docroot/plugins:z' + - 'mautic_data/vendor:/var/www/html/vendor:z' + - 'mautic_data/bin:/var/www/html/bin:z' + - 'mautic_data/cron:/opt/mautic/cron:z' environment: - SERVICE_FQDN_MAUTIC_80 - 'DOCKER_MAUTIC_LOAD_TEST_DATA=${MAUTIC_LOAD_TEST_DATA:-false}' - 'DOCKER_MAUTIC_RUN_MIGRATIONS=${MAUTIC_RUN_MIGRATIONS:-false}' - - 'MAUTIC_DB_HOST=${MYSQL_HOST}' - - 'MAUTIC_DB_PORT=${MYSQL_PORT}' - - 'MAUTIC_DB_DATABASE=${MYSQL_DATABASE}' - - 'MAUTIC_DB_USER=${MYSQL_USER}' + - 'MAUTIC_DB_HOST=${MYSQL_HOST:-db}' + - 'MAUTIC_DB_PORT=${MYSQL_PORT:-3306}' + - 'MAUTIC_DB_DATABASE=${MYSQL_DATABASE:-mautic}' + - 'MAUTIC_DB_USER=${SERVICE_USER_MYSQL}' - 'MAUTIC_DB_PASSWORD=${SERVICE_PASSWORD_64_MYSQL}' - - 'MAUTIC_MESSENGER_DSN_EMAIL=${MAUTIC_MESSENGER_DSN_EMAIL}' - - 'MAUTIC_MESSENGER_DSN_HIT=${MAUTIC_MESSENGER_DSN_HIT}' + - 'MAUTIC_MESSENGER_DSN_EMAIL=${MAUTIC_MESSENGER_DSN_EMAIL:-amqp://guest:guest@rabbitmq:5672/mautic/messages}' + - 'MAUTIC_MESSENGER_DSN_HIT=${MAUTIC_MESSENGER_DSN_HIT:-amqp://guest:guest@rabbitmq:5672/mautic/messages}' healthcheck: - test: ["CMD", "curl", "-f", "http://127.0.0.1:80"] - interval: 2s + test: + - CMD + - curl + - '-f' + - 'http://localhost' + interval: 15s timeout: 10s retries: 15 - depends_on: - db: - condition: service_healthy mautic_cron: image: 'mautic/mautic:latest' - links: - - 'db:mysql' volumes: - - './mautic/config:/var/www/html/config:z' - - './mautic/logs:/var/www/html/var/logs:z' - - './mautic/media/files:/var/www/html/docroot/media/files:z' - - './mautic/media/images:/var/www/html/docroot/media/images:z' - - './cron:/opt/mautic/cron:z' + - 'mautic_data/config:/var/www/html/config:z' + - 'mautic_data/logs:/var/www/html/var/logs:z' + - 'mautic_data/media/files:/var/www/html/docroot/media/files:z' + - 'mautic_data/media/images:/var/www/html/docroot/media/images:z' + - 'mautic_data/plugins:/var/www/html/docroot/plugins:z' + - 'mautic_data/vendor:/var/www/html/vendor:z' + - 'mautic_data/bin:/var/www/html/bin:z' + - 'mautic_data/cron:/opt/mautic/cron:z' environment: - DOCKER_MAUTIC_ROLE=mautic_cron - - 'MAUTIC_DB_HOST=${MYSQL_HOST}' - - 'MAUTIC_DB_PORT=${MYSQL_PORT}' - - 'MAUTIC_DB_DATABASE=${MYSQL_DATABASE}' - - 'MAUTIC_DB_USER=${MYSQL_USER}' + - 'MAUTIC_DB_HOST=${MYSQL_HOST:-db}' + - 'MAUTIC_DB_PORT=${MYSQL_PORT:-3306}' + - 'MAUTIC_DB_DATABASE=${MYSQL_DATABASE:-mautic}' + - 'MAUTIC_DB_USER=${SERVICE_USER_MYSQL}' - 'MAUTIC_DB_PASSWORD=${SERVICE_PASSWORD_64_MYSQL}' - - 'MAUTIC_MESSENGER_DSN_EMAIL=${MAUTIC_MESSENGER_DSN_EMAIL}' - - 'MAUTIC_MESSENGER_DSN_HIT=${MAUTIC_MESSENGER_DSN_HIT}' + - 'MAUTIC_MESSENGER_DSN_EMAIL=${MAUTIC_MESSENGER_DSN_EMAIL:-amqp://guest:guest@rabbitmq:5672/mautic/messages}' + - 'MAUTIC_MESSENGER_DSN_HIT=${MAUTIC_MESSENGER_DSN_HIT:-amqp://guest:guest@rabbitmq:5672/mautic/messages}' depends_on: mautic_web: condition: service_healthy healthcheck: - test: ["CMD", "curl", "-f", "http://127.0.0.1:80"] - interval: 2s + test: + - CMD + - curl + - '-f' + - 'http://localhost' + interval: 15s timeout: 10s retries: 15 mautic_worker: image: 'mautic/mautic:latest' - links: - - 'db:mysql' volumes: - - './mautic/config:/var/www/html/config:z' - - './mautic/logs:/var/www/html/var/logs:z' - - './mautic/media/files:/var/www/html/docroot/media/files:z' - - './mautic/media/images:/var/www/html/docroot/media/images:z' - - './cron:/opt/mautic/cron:z' + - 'mautic_data/config:/var/www/html/config:z' + - 'mautic_data/logs:/var/www/html/var/logs:z' + - 'mautic_data/media/files:/var/www/html/docroot/media/files:z' + - 'mautic_data/media/images:/var/www/html/docroot/media/images:z' + - 'mautic_data/plugins:/var/www/html/docroot/plugins:z' + - 'mautic_data/vendor:/var/www/html/vendor:z' + - 'mautic_data/bin:/var/www/html/bin:z' + - 'mautic_data/cron:/opt/mautic/cron:z' environment: - DOCKER_MAUTIC_ROLE=mautic_worker - - 'MAUTIC_DB_HOST=${MYSQL_HOST}' - - 'MAUTIC_DB_PORT=${MYSQL_PORT}' - - 'MAUTIC_DB_DATABASE=${MYSQL_DATABASE}' - - 'MAUTIC_DB_USER=${MYSQL_USER}' + - 'MAUTIC_DB_HOST=${MYSQL_HOST:-db}' + - 'MAUTIC_DB_PORT=${MYSQL_PORT:-3306}' + - 'MAUTIC_DB_DATABASE=${MYSQL_DATABASE:-mautic}' + - 'MAUTIC_DB_USER=${SERVICE_USER_MYSQL}' - 'MAUTIC_DB_PASSWORD=${SERVICE_PASSWORD_64_MYSQL}' - - 'MAUTIC_MESSENGER_DSN_EMAIL=${MAUTIC_MESSENGER_DSN_EMAIL}' - - 'MAUTIC_MESSENGER_DSN_HIT=${MAUTIC_MESSENGER_DSN_HIT}' + - 'MAUTIC_MESSENGER_DSN_EMAIL=${MAUTIC_MESSENGER_DSN_EMAIL:-amqp://guest:guest@rabbitmq:5672/mautic/messages}' + - 'MAUTIC_MESSENGER_DSN_HIT=${MAUTIC_MESSENGER_DSN_HIT:-amqp://guest:guest@rabbitmq:5672/mautic/messages}' depends_on: mautic_web: - condition: service_health + condition: service_healthy healthcheck: - test: ["CMD", "curl", "-f", "http://127.0.0.1:80"] - interval: 2s + test: + - CMD + - curl + - '-f' + - 'http://localhost' + interval: 15s timeout: 10s retries: 15