
commit
f57f04a61b
4 changed files with 237 additions and 0 deletions
@ -0,0 +1,134 @@
|
||||
# |
||||
# These groups are read by MariaDB server. |
||||
# Use it for options that only the server (but not clients) should see |
||||
# |
||||
# See the examples of server my.cnf files in /usr/share/mysql |
||||
|
||||
# this is read by the standalone daemon and embedded servers |
||||
[server] |
||||
|
||||
# this is only for the mysqld standalone daemon |
||||
[mysqld] |
||||
|
||||
# |
||||
# * Basic Settings |
||||
# |
||||
user = mysql |
||||
pid-file = /run/mysqld/mysqld.pid |
||||
socket = /run/mysqld/mysqld.sock |
||||
#port = 3306 |
||||
basedir = /usr |
||||
datadir = /var/lib/mysql |
||||
tmpdir = /tmp |
||||
lc-messages-dir = /usr/share/mysql |
||||
#skip-external-locking |
||||
|
||||
# Instead of skip-networking the default is now to listen only on |
||||
# localhost which is more compatible and is not less secure. |
||||
bind-address = 0.0.0.0 |
||||
|
||||
# |
||||
# * Fine Tuning |
||||
# |
||||
#key_buffer_size = 16M |
||||
#max_allowed_packet = 16M |
||||
#thread_stack = 192K |
||||
#thread_cache_size = 8 |
||||
# This replaces the startup script and checks MyISAM tables if needed |
||||
# the first time they are touched |
||||
#myisam_recover_options = BACKUP |
||||
#max_connections = 100 |
||||
#table_cache = 64 |
||||
#thread_concurrency = 10 |
||||
|
||||
# |
||||
# * Query Cache Configuration |
||||
# |
||||
#query_cache_limit = 1M |
||||
query_cache_size = 16M |
||||
|
||||
# |
||||
# * Logging and Replication |
||||
# |
||||
# Both location gets rotated by the cronjob. |
||||
# Be aware that this log type is a performance killer. |
||||
# As of 5.1 you can enable the log at runtime! |
||||
#general_log_file = /var/log/mysql/mysql.log |
||||
#general_log = 1 |
||||
# |
||||
# Error log - should be very few entries. |
||||
# |
||||
log_error = /var/log/mysql/error.log |
||||
# |
||||
# Enable the slow query log to see queries with especially long duration |
||||
#slow_query_log_file = /var/log/mysql/mariadb-slow.log |
||||
#long_query_time = 10 |
||||
#log_slow_rate_limit = 1000 |
||||
#log_slow_verbosity = query_plan |
||||
#log-queries-not-using-indexes |
||||
# |
||||
# The following can be used as easy to replay backup logs or for replication. |
||||
# note: if you are setting up a replication slave, see README.Debian about |
||||
# other settings you may need to change. |
||||
#server-id = 1 |
||||
#log_bin = /var/log/mysql/mysql-bin.log |
||||
expire_logs_days = 10 |
||||
#max_binlog_size = 100M |
||||
#binlog_do_db = include_database_name |
||||
#binlog_ignore_db = exclude_database_name |
||||
|
||||
# |
||||
# * Security Features |
||||
# |
||||
# Read the manual, too, if you want chroot! |
||||
#chroot = /var/lib/mysql/ |
||||
# |
||||
# For generating SSL certificates you can use for example the GUI tool "tinyca". |
||||
# |
||||
#ssl-ca = /etc/mysql/cacert.pem |
||||
#ssl-cert = /etc/mysql/server-cert.pem |
||||
#ssl-key = /etc/mysql/server-key.pem |
||||
# |
||||
# Accept only connections using the latest and most secure TLS protocol version. |
||||
# ..when MariaDB is compiled with OpenSSL: |
||||
#ssl-cipher = TLSv1.2 |
||||
# ..when MariaDB is compiled with YaSSL (default in Debian): |
||||
#ssl = on |
||||
|
||||
# |
||||
# * Character sets |
||||
# |
||||
# MySQL/MariaDB default is Latin1, but in Debian we rather default to the full |
||||
# utf8 4-byte character set. See also client.cnf |
||||
# |
||||
character-set-server = utf8mb4 |
||||
collation-server = utf8mb4_general_ci |
||||
|
||||
# |
||||
# * InnoDB |
||||
# |
||||
# InnoDB is enabled by default with a 10MB datafile in /var/lib/mysql/. |
||||
# Read the manual for more InnoDB related options. There are many! |
||||
|
||||
# |
||||
# * Unix socket authentication plugin is built-in since 10.0.22-6 |
||||
# |
||||
# Needed so the root database user can authenticate without a password but |
||||
# only when running as the unix root user. |
||||
# |
||||
# Also available for other users if required. |
||||
# See https://mariadb.com/kb/en/unix_socket-authentication-plugin/ |
||||
|
||||
# this is only for embedded server |
||||
[embedded] |
||||
|
||||
# This group is only read by MariaDB servers, not by MySQL. |
||||
# If you use the same .cnf file for MySQL and MariaDB, |
||||
# you can put MariaDB-only options here |
||||
[mariadb] |
||||
|
||||
# This group is only read by MariaDB-10.3 servers. |
||||
# If you use the same .cnf file for MariaDB of different versions, |
||||
# use this group for options that older servers don't understand |
||||
[mariadb-10.3] |
||||
|
@ -0,0 +1,29 @@
|
||||
FROM registry.sindominio.net/debian |
||||
|
||||
# Default variables |
||||
ENV HOME_DIR /var/lib/mysql |
||||
ENV MYSQL_DATABASE mysql |
||||
ENV MYSQL_USER mysql |
||||
ENV MYSQL_PASSWORD mysql |
||||
|
||||
RUN apt-get update && \ |
||||
apt-get -qy install mariadb-server default-mysql-client sed &&\ |
||||
apt-get clean |
||||
|
||||
COPY 50-server.cnf /etc/mysql/mariadb.conf.d/50-server.cnf |
||||
|
||||
RUN set -e; \ |
||||
mkdir /var/run/mysqld; \ |
||||
chmod 777 /var/run/mysqld |
||||
|
||||
COPY docker-entrypoint.sh /usr/local/bin/ |
||||
|
||||
RUN ["chmod", "+x", "/usr/local/bin/docker-entrypoint.sh"] |
||||
|
||||
VOLUME /var/lib/mysql |
||||
|
||||
EXPOSE 3306 |
||||
|
||||
ENTRYPOINT ["docker-entrypoint.sh"] |
||||
|
||||
CMD ["mysqld"] |
@ -0,0 +1,42 @@
|
||||
--- |
||||
title: MariaDB Generic |
||||
|
||||
--- |
||||
|
||||
Imagen de MariaDB genérica construida sobre la imagen de GNU/Linux Debian del registry de Sindominio. |
||||
|
||||
Crea, |
||||
|
||||
* Base de datos __mysql__ |
||||
* Usuaria __mysql__ |
||||
* Password __mysql__ |
||||
|
||||
Estos valores se pueden modificar a través de variables envolventes: |
||||
|
||||
* MYSQL_DATABASE |
||||
* MYSQL_USER |
||||
* MYSQL_PASSWORD |
||||
|
||||
# Uso en Docker Compose |
||||
|
||||
Configuración en docker-compose.yml |
||||
|
||||
``` |
||||
... |
||||
|
||||
services: |
||||
|
||||
db: |
||||
image: registry.sindominio.net/mariadb |
||||
container_name: sd_custom_db |
||||
restart: always |
||||
volumes: |
||||
- dbdata:/var/lib/mysql |
||||
environment: |
||||
MYSQL_DATABASE: customdatabase |
||||
MYSQL_USER: customuser |
||||
MYSQL_PASSWORD: custompassword |
||||
|
||||
... |
||||
|
||||
``` |
@ -0,0 +1,32 @@
|
||||
#!/bin/bash |
||||
set -e |
||||
|
||||
mysql_log() { |
||||
local type="$1"; shift |
||||
printf '%s [%s] [Entrypoint]: %s\n' "$(date --rfc-3339=seconds)" "$type" "$*" |
||||
} |
||||
|
||||
mysql_note() { |
||||
mysql_log Note "$@" |
||||
} |
||||
|
||||
docker_change_passw() { |
||||
echo "Creo la base de datos si no existe ${MYSQL_DATABSE}" |
||||
echo "CREATE DATABASE IF NOT EXISTS ${MYSQL_DATABASE}" | mysql -u root |
||||
echo "Reseteo la configuracion de usuario ${MYSQL_USER}" |
||||
echo "CREATE USER IF NOT EXISTS '${MYSQL_USER}'@'%' IDENTIFIED BY '${MYSQL_PASSWORD}' ; GRANT ALL ON ${MYSQL_DATABASE}.* TO '${MYSQL_USER}'@'%' WITH GRANT OPTION ;" | mysql -u root |
||||
mysqladmin shutdown |
||||
|
||||
} |
||||
|
||||
docker_temp_server_start() { |
||||
echo "Arranco temporalmente MariaDB para crear la base de datos ${MYSQL_DATABASE} y el usuario ${MYSQL_USER}" |
||||
mysqld_safe & |
||||
sleep 6 |
||||
docker_change_passw |
||||
} |
||||
|
||||
docker_temp_server_start |
||||
|
||||
echo "Iniciando el servidor" |
||||
exec "$@" |
Loading…
Reference in new issue