Skip to content


The Lagoon mariadb-drupal Docker image Dockerfile is a customized mariadb image to use within Drupal projects in Lagoon. It differs from the mariadb image only for initial database setup, made by some environment variables:

Environment Variable Default Description
MARIADB_DATABASE drupal Drupal database created at startup.
MARIADB_USER drupal Default user created at startup.
MARIADB_PASSWORD drupal Password of default user created at startup.

If the LAGOON_ENVIRONMENT_TYPE variable is set to production, performances are set accordingly by using MARIADB_INNODB_BUFFER_POOL_SIZE=1024 and MARIADB_INNODB_LOG_FILE_SIZE=256.

Additional MariaDB Logging#

During the course of development, it may be necessary to enable either query logging or slow query logging. To do so, set the environment variables MARIADB_LOG_SLOW or MARIADB_LOG_QUERIES. This can be done in docker-compose.yml.

Connecting to MySQL container from the host#

If you would like to connect to your MySQL database inside the Docker container with an external tool like Sequel Pro, MySQL Workbench, HeidiSQL, DBeaver, plain old mysql-cli or anything else, here's how to get the IP and port info.

Get published MySQL port from the container#

By default, Docker assigns a randomly published port for MySQL during each container start. This is done to prevent port collisions.

To get the published port via docker:

Run: docker port [container_name].

Get port
$ docker port drupal_example_mariadb_1
3306/tcp ->

Or via docker-compose inside a Drupal repository:

Run: docker compose port [service_name] [interal_port].

Set ports
docker compose port mariab 3306

During development, if you are using an external database tool, it may become cumbersome to continually check and set the MySQL connection port.

To set a static port, edit your service definition in your docker-compose.yml.

      - "33772:3306" # Exposes port 3306 with a 33772 on the host port. Note by doing this you are responsible for managing port collisions`.


By setting a static port you become responsible for managing port collisions.

Connect to MySQL#

Now you can use these details to connect to whatever database management tool you'd like.

Linux OS X
IP/Host IP from container
Port Published port from container Published port from container
Username drupal drupal
Password drupal drupal
Database drupal drupal