mariadb 10.11
Für die Verwendung von MariaDB wird ab sofort das offizielle MariaDB-Docker-Image in der Version 10.11 verwendet:
mariadb:10.11
Konfiguration für docker-compose
Das Image kann in einer docker-compose.yml
wie folgt eingebunden werden:
mariadb:
image: mariadb:10.11
volumes:
- db_data:/var/lib/mysql
- ./config/mariadb:/etc/mysql/conf.d
env_file:
- brandbox.docker.env
environment:
MYSQL_HOST: database.${COMPOSE_PROJECT_NAME}
MARIADB_AUTO_UPGRADE: 1
MARIADB_INITDB_SKIP_TZINFO: 1
labels:
traefik.enable: "false"
healthcheck:
test: ["CMD", "mysql", "-u", "root", "-proot", "-e", "SELECT version();"]
interval: 1m
timeout: 10s
retries: 3
ports:
- "3306"
cpus: 0.75
mem_limit: 1000M
networks:
internal:
aliases:
- database.${COMPOSE_PROJECT_NAME}
volumes:
db_data:
Zusätzliche Konfiguration über Bind-Mount
Konfigurationsdateien müssen per Bind-Mount in den Container gemountet werden. Dazu muss der Ordner ./config/mariadb
parallel zu docker-compose.yml
vor dem Ausführen von up
angelegt werden.
Der Ordner muss folgende Dateien enthalten:
MariaDB-Konfiguration
my.cnf
entrypoint.sh
, um MariaDB-Logs in die Docker-Logs umzuleiten (siehe unten unter “Logging”)
my.cnf
[mysqld]
character-set-server=utf8
collation-server=utf8_general_ci
sort_buffer_size=1M
innodb_open_files=1048576
open_files_limit=1048576
tmp_table_size=256M
max_allowed_packet=1024M
max_heap_table_size=256M
query_cache_limit=16M
query_cache_size=128M
innodb_lru_scan_depth=128
innodb_ft_max_token_size=84
innodb_ft_result_cache_limit=2000000000
innodb_ft_total_cache_size=640000000
innodb_io_capacity=150000
innodb_io_capacity_max=150000
general_log=0
general_log_file=/var/log/mysql/query.log
Logging
Es ist möglich, über Einträge in der my.cnf
das Query-Log und das Slow-Log zu aktivieren:
my.cnf
general_log=1
general_log_file=/var/log/mysql/query.log
slow_query_log=1
slow_query_log_file=/var/log/mysql/slow.log
long_query_time=0.1
log_queries_not_using_indexes
Über einen Custom-Entrypoint können diese Logdateien in die Standardausgabe (stdout) geschrieben werden, damit sie über docker logs bzw. Graylog ausgewertet werden können:
docker-compose.yml (Auszug)
Die Datei entrypoint.sh
muss dazu im definierten Bind-Mount-Ordner abgelegt werden (./config/mariadb/
) und wie folgt aussehen:
Wichtig: Die Datei entrypoint.sh
benötigt Ausführungsrechte für "other":