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:
...
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”)
...
Es ist möglich, über Einträge in der my.cnf
das Query-Log und das Slow-Log zu aktivieren:
...
Codeblock | ||
---|---|---|
| ||
database: 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} entrypoint: /etc/mysql/conf.d/entrypoint.sh # >> Custom-Entrypoint definieren 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} |
Die Datei entrypoint.sh
muss dazu im definierten Bind-Mount-Ordner abgelegt werden (./config/mariadb/
) und wie folgt aussehen:
Codeblock | ||
---|---|---|
| ||
#!/usr/bin/env bash set -euo pipefail ## # This script exists to work-around the fact that # mysql does not support logging to stdout # # This will tail the file logs configured in ./my.cnf ## LOG_PATHS=( '/var/log/mysql/slow.log' '/var/log/mysql/query.log' ) for LOG_PATH in "${LOG_PATHS[@]}"; do ( umask 0 && truncate -s0 "$LOG_PATH" ) tail --pid $$ -n0 -F "$LOG_PATH" & done /usr/local/bin/docker-entrypoint.sh mariadbd |
Wichtig: Die Datei entrypoint.sh
benötigt Ausführungsrechte für "other":
Codeblock |
---|
chmod o+x ./entrypoint.sh |