MariaDB is the open source successor to MySQL.
MariaDB image Dockerfile. Based on the official packages
mariadb-client provided by the the upstream Alpine image.
This Dockerfile is intended to be used to set up a standalone MariaDB database server.
- 10.4 Dockerfile (Alpine 3.12 Support until May 2022) -
- 10.5 Dockerfile (Alpine 3.14 Support until May 2023) -
- 10.6 Dockerfile (Alpine 3.16 Support until May 2024) -
As these images are not built from the upstream MariaDB images, their support follows a different cycle - and will only receive updates as long as the underlying Alpine images receive support - see https://alpinelinux.org/releases/ for more information. In practice, most MariaDB users will only be running these containers locally - the production instances will use the Managed Cloud Databases provided by the DBaaS Operator
The default exposed port of MariaDB containers is port
To allow Lagoon to select the best way to run the MariaDB container, use
lagoon.type: mariadb - this allows the DBaaS operator to provision a cloud database if available in the cluster. Use
lagoon.type: mariadb-single to specifically request MariaDB in a container. Persistent storage is always provisioned for MariaDB containers at
This image is prepared to be used on Lagoon. There are therefore some things already done:
- Folder permissions are automatically adapted with
fix-permissions, so this image will work with a random user.
readiness-probe.shscript to check when MariaDB container is ready.
mariadb: image: uselagoon/mariadb-10.6-drupal:latest labels: # tells Lagoon this is a MariaDB database lagoon.type: mariadb ports: # exposes the port 3306 with a random local port, find it with `docker-compose port mariadb 3306` - "3306" volumes: # mounts a named volume at the default path for MariaDB - db:/var/lib/mysql
mysqltuner.pl- Perl script useful for database parameter tuning.
mysql-backup.sh- Script for automating the daily MySQL backups on development environment.
pwgen- Utility to generate random and complex passwords.
my.cnf configuration file#
The image ships a default MariaDB configuration file, optimized to work on Lagoon. Some options are configurable via environment variables.
|MARIADB_DATABASE||lagoon||Database name created at startup.|
|MARIADB_USER||lagoon||Default user created at startup.|
|MARIADB_PASSWORD||lagoon||Password of default user created at startup.|
|MARIADB_ROOT_PASSWORD||Lag00n||MariaDB root user's password.|
|MARIADB_CHARSET||utf8mb4||Set the server charset.|
|MARIADB_COLLATION||utf8mb4_bin||Set server collation.|
|MARIADB_INNODB_BUFFER_POOL_SIZE||256M||Set the MariaDB InnoDB buffer pool size.|
|MARIADB_INNODB_BUFFER_POOL_INSTANCES||1||Number of InnoDB buffer pool instances.|
|MARIADB_INNODB_LOG_FILE_SIZE||64M||Size of InnoDB log file.|
|MARIADB_LOG_SLOW||(not set)||Variable to control the save of slow queries.|
|MARIADB_LOG_QUERIES||(not set)||Variable to control the save of ALL queries.|
|BACKUPS_DIR||/var/lib/mysql/backup||Default path for databases backups.|
|MARIADB_DATA_DIR||/var/lib/mysql||Path of the MariaDB data dir, be careful, changing this can occur data loss!|
|MARIADB_COPY_DATA_DIR_SOURCE||(not set)||Path which the entrypoint script of mariadb will use to copy into the defined
LAGOON_ENVIRONMENT_TYPE variable is set to
are set accordingly by using